Google OR-Tools v9.7
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
SatParameters.java
Go to the documentation of this file.
1// Generated by the protocol buffer compiler. DO NOT EDIT!
2// source: ortools/sat/sat_parameters.proto
3
4package com.google.ortools.sat;
5
16public final class SatParameters extends
17 com.google.protobuf.GeneratedMessageV3 implements
18 // @@protoc_insertion_point(message_implements:operations_research.sat.SatParameters)
20private static final long serialVersionUID = 0L;
21 // Use SatParameters.newBuilder() to construct.
22 private SatParameters(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
23 super(builder);
24 }
25 private SatParameters() {
26 name_ = "";
27 preferredVariableOrder_ = 0;
28 initialPolarity_ = 1;
29 usePhaseSaving_ = true;
30 polarityRephaseIncrement_ = 1000;
31 minimizationAlgorithm_ = 2;
32 binaryMinimizationAlgorithm_ = 1;
33 subsumptionDuringConflictAnalysis_ = true;
34 clauseCleanupPeriod_ = 10000;
35 clauseCleanupRatio_ = 0.5D;
36 clauseCleanupProtection_ = 0;
37 clauseCleanupLbdBound_ = 5;
38 clauseCleanupOrdering_ = 0;
39 pbCleanupIncrement_ = 200;
40 pbCleanupRatio_ = 0.5D;
41 minimizeWithPropagationRestartPeriod_ = 10;
42 minimizeWithPropagationNumDecisions_ = 1000;
43 variableActivityDecay_ = 0.8D;
44 maxVariableActivityValue_ = 1e+100D;
45 glucoseMaxDecay_ = 0.95D;
46 glucoseDecayIncrement_ = 0.01D;
47 glucoseDecayIncrementPeriod_ = 5000;
48 clauseActivityDecay_ = 0.999D;
49 maxClauseActivityValue_ = 1e+20D;
50 restartAlgorithms_ = java.util.Collections.emptyList();
51 defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
52 restartPeriod_ = 50;
53 restartRunningWindowSize_ = 50;
54 restartDlAverageRatio_ = 1D;
55 restartLbdAverageRatio_ = 1D;
56 blockingRestartWindowSize_ = 5000;
57 blockingRestartMultiplier_ = 1.4D;
58 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
59 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
60 maxNumberOfConflicts_ = 9223372036854775807L;
61 maxMemoryInMb_ = 10000L;
62 absoluteGapLimit_ = 0.0001D;
63 randomSeed_ = 1;
64 logFrequencyInSeconds_ = -1D;
65 modelReductionLogFrequencyInSeconds_ = 5D;
66 logPrefix_ = "";
67 logToStdout_ = true;
68 countAssumptionLevelsInLbd_ = true;
69 presolveBveThreshold_ = 500;
70 presolveBveClauseWeight_ = 3;
71 probingDeterministicTimeLimit_ = 1D;
72 presolveProbingDeterministicTimeLimit_ = 30D;
73 presolveBlockedClause_ = true;
74 presolveUseBva_ = true;
75 presolveBvaThreshold_ = 1;
76 maxPresolveIterations_ = 3;
77 cpModelPresolve_ = true;
78 cpModelProbingLevel_ = 2;
79 cpModelUseSatPresolve_ = true;
80 tableCompressionLevel_ = 2;
81 expandReservoirConstraints_ = true;
82 mergeNoOverlapWorkLimit_ = 1000000000000D;
83 mergeAtMostOneWorkLimit_ = 100000000D;
84 presolveSubstitutionLevel_ = 1;
85 presolveInclusionWorkLimit_ = 100000000L;
86 ignoreNames_ = true;
87 inferAllDiffs_ = true;
88 findBigLinearOverlap_ = true;
89 minNumLnsWorkers_ = 2;
90 subsolvers_ =
91 com.google.protobuf.LazyStringArrayList.emptyList();
92 extraSubsolvers_ =
93 com.google.protobuf.LazyStringArrayList.emptyList();
94 ignoreSubsolvers_ =
95 com.google.protobuf.LazyStringArrayList.emptyList();
96 subsolverParams_ = java.util.Collections.emptyList();
97 shareObjectiveBounds_ = true;
98 shareLevelZeroBounds_ = true;
99 shareBinaryClauses_ = true;
100 useOptimizationHints_ = true;
101 minimizeCore_ = true;
102 findMultipleCores_ = true;
103 coverOptimization_ = true;
104 maxSatAssumptionOrder_ = 0;
105 maxSatStratification_ = 1;
106 propagationLoopDetectionFactor_ = 10D;
107 usePrecedencesInDisjunctiveConstraint_ = true;
108 maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = 60;
109 useDisjunctiveConstraintInCumulative_ = true;
110 useDualSchedulingHeuristics_ = true;
111 linearizationLevel_ = 1;
112 booleanEncodingLevel_ = 1;
113 maxDomainSizeWhenEncodingEqNeqConstraints_ = 16;
114 maxNumCuts_ = 10000;
115 cutLevel_ = 1;
116 addCgCuts_ = true;
117 addMirCuts_ = true;
118 addZeroHalfCuts_ = true;
119 addCliqueCuts_ = true;
120 maxAllDiffCutSize_ = 64;
121 addLinMaxCuts_ = true;
122 maxIntegerRoundingScaling_ = 600;
123 addLpConstraintsLazily_ = true;
124 rootLpIterations_ = 2000;
125 minOrthogonalityForLpConstraints_ = 0.05D;
126 maxCutRoundsAtLevelZero_ = 1;
127 maxConsecutiveInactiveCount_ = 100;
128 cutMaxActiveCountValue_ = 10000000000D;
129 cutActiveCountDecay_ = 0.8D;
130 cutCleanupTarget_ = 1000;
131 newConstraintsBatchSize_ = 50;
132 searchBranching_ = 0;
133 hintConflictLimit_ = 10;
134 exploitIntegerLpSolution_ = true;
135 exploitAllLpSolution_ = true;
136 exploitObjective_ = true;
137 useShavingInProbingSearch_ = true;
138 shavingSearchDeterministicTime_ = 0.001D;
139 pseudoCostReliabilityThreshold_ = 100L;
140 binarySearchNumConflicts_ = -1;
141 feasibilityJumpMaxNumValuesScanned_ = 4096L;
142 feasibilityJumpProtectLinearFeasibility_ = true;
143 feasibilityJumpDecay_ = 1D;
144 feasibilityJumpVarPerburbationRangeRatio_ = 0.2D;
145 feasibilityJumpEnableRestarts_ = true;
146 violationLsPerturbationPeriod_ = 100;
147 sharedTreeWorkerObjectiveSplitProbability_ = 0.5D;
148 sharedTreeMaxNodesPerWorker_ = 128;
149 sharedTreeSplitStrategy_ = 0;
150 instantiateAllVariables_ = true;
151 autoDetectGreaterThanAtLeastOneOf_ = true;
152 solutionPoolSize_ = 3;
153 useRinsLns_ = true;
154 useFeasibilityPump_ = true;
155 fpRounding_ = 2;
156 useExactLpReason_ = true;
157 catchSigintSignal_ = true;
158 useImpliedBounds_ = true;
159 convertIntervals_ = true;
160 symmetryLevel_ = 2;
161 linearSplitSize_ = 100;
162 mipMaxBound_ = 10000000D;
163 mipVarScaling_ = 1D;
164 mipAutomaticallyScaleVariables_ = true;
165 mipWantedPrecision_ = 1e-06D;
166 mipMaxActivityExponent_ = 53;
167 mipCheckPrecision_ = 0.0001D;
168 mipComputeTrueObjectiveBound_ = true;
169 mipMaxValidMagnitude_ = 1e+30D;
170 mipDropTolerance_ = 1e-16D;
171 }
172
173 @java.lang.Override
174 @SuppressWarnings({"unused"})
175 protected java.lang.Object newInstance(
176 UnusedPrivateParameter unused) {
177 return new SatParameters();
178 }
179
180 public static final com.google.protobuf.Descriptors.Descriptor
182 return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
183 }
184
185 @java.lang.Override
186 protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
188 return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
189 .ensureFieldAccessorsInitialized(
190 com.google.ortools.sat.SatParameters.class, com.google.ortools.sat.SatParameters.Builder.class);
191 }
192
201 public enum VariableOrder
202 implements com.google.protobuf.ProtocolMessageEnum {
219 ;
220
228 public static final int IN_ORDER_VALUE = 0;
232 public static final int IN_REVERSE_ORDER_VALUE = 1;
236 public static final int IN_RANDOM_ORDER_VALUE = 2;
237
238
239 public final int getNumber() {
240 return value;
241 }
242
248 @java.lang.Deprecated
249 public static VariableOrder valueOf(int value) {
250 return forNumber(value);
251 }
252
257 public static VariableOrder forNumber(int value) {
258 switch (value) {
259 case 0: return IN_ORDER;
260 case 1: return IN_REVERSE_ORDER;
261 case 2: return IN_RANDOM_ORDER;
262 default: return null;
263 }
264 }
265
266 public static com.google.protobuf.Internal.EnumLiteMap<VariableOrder>
268 return internalValueMap;
269 }
270 private static final com.google.protobuf.Internal.EnumLiteMap<
271 VariableOrder> internalValueMap =
272 new com.google.protobuf.Internal.EnumLiteMap<VariableOrder>() {
273 public VariableOrder findValueByNumber(int number) {
274 return VariableOrder.forNumber(number);
275 }
276 };
277
278 public final com.google.protobuf.Descriptors.EnumValueDescriptor
280 return getDescriptor().getValues().get(ordinal());
281 }
282 public final com.google.protobuf.Descriptors.EnumDescriptor
284 return getDescriptor();
285 }
286 public static final com.google.protobuf.Descriptors.EnumDescriptor
288 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(0);
289 }
290
291 private static final VariableOrder[] VALUES = values();
292
293 public static VariableOrder valueOf(
294 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
295 if (desc.getType() != getDescriptor()) {
296 throw new java.lang.IllegalArgumentException(
297 "EnumValueDescriptor is not for this type.");
298 }
299 return VALUES[desc.getIndex()];
300 }
301
302 private final int value;
303
304 private VariableOrder(int value) {
305 this.value = value;
306 }
307
308 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.VariableOrder)
309 }
310
323 public enum Polarity
324 implements com.google.protobuf.ProtocolMessageEnum {
356 ;
357
361 public static final int POLARITY_TRUE_VALUE = 0;
365 public static final int POLARITY_FALSE_VALUE = 1;
369 public static final int POLARITY_RANDOM_VALUE = 2;
380 public static final int POLARITY_WEIGHTED_SIGN_VALUE = 3;
388 public static final int POLARITY_REVERSE_WEIGHTED_SIGN_VALUE = 4;
389
390
391 public final int getNumber() {
392 return value;
393 }
394
400 @java.lang.Deprecated
401 public static Polarity valueOf(int value) {
402 return forNumber(value);
403 }
404
409 public static Polarity forNumber(int value) {
410 switch (value) {
411 case 0: return POLARITY_TRUE;
412 case 1: return POLARITY_FALSE;
413 case 2: return POLARITY_RANDOM;
414 case 3: return POLARITY_WEIGHTED_SIGN;
415 case 4: return POLARITY_REVERSE_WEIGHTED_SIGN;
416 default: return null;
417 }
418 }
419
420 public static com.google.protobuf.Internal.EnumLiteMap<Polarity>
422 return internalValueMap;
423 }
424 private static final com.google.protobuf.Internal.EnumLiteMap<
425 Polarity> internalValueMap =
426 new com.google.protobuf.Internal.EnumLiteMap<Polarity>() {
427 public Polarity findValueByNumber(int number) {
428 return Polarity.forNumber(number);
429 }
430 };
431
432 public final com.google.protobuf.Descriptors.EnumValueDescriptor
434 return getDescriptor().getValues().get(ordinal());
435 }
436 public final com.google.protobuf.Descriptors.EnumDescriptor
438 return getDescriptor();
439 }
440 public static final com.google.protobuf.Descriptors.EnumDescriptor
442 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(1);
443 }
444
445 private static final Polarity[] VALUES = values();
446
447 public static Polarity valueOf(
448 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
449 if (desc.getType() != getDescriptor()) {
450 throw new java.lang.IllegalArgumentException(
451 "EnumValueDescriptor is not for this type.");
452 }
453 return VALUES[desc.getIndex()];
454 }
455
456 private final int value;
457
458 private Polarity(int value) {
459 this.value = value;
460 }
461
462 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.Polarity)
463 }
464
473 implements com.google.protobuf.ProtocolMessageEnum {
490 ;
491
495 public static final int NONE_VALUE = 0;
499 public static final int SIMPLE_VALUE = 1;
503 public static final int RECURSIVE_VALUE = 2;
507 public static final int EXPERIMENTAL_VALUE = 3;
508
509
510 public final int getNumber() {
511 return value;
512 }
513
519 @java.lang.Deprecated
520 public static ConflictMinimizationAlgorithm valueOf(int value) {
521 return forNumber(value);
522 }
523
528 public static ConflictMinimizationAlgorithm forNumber(int value) {
529 switch (value) {
530 case 0: return NONE;
531 case 1: return SIMPLE;
532 case 2: return RECURSIVE;
533 case 3: return EXPERIMENTAL;
534 default: return null;
535 }
536 }
537
538 public static com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>
540 return internalValueMap;
541 }
542 private static final com.google.protobuf.Internal.EnumLiteMap<
543 ConflictMinimizationAlgorithm> internalValueMap =
544 new com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>() {
545 public ConflictMinimizationAlgorithm findValueByNumber(int number) {
547 }
548 };
549
550 public final com.google.protobuf.Descriptors.EnumValueDescriptor
552 return getDescriptor().getValues().get(ordinal());
553 }
554 public final com.google.protobuf.Descriptors.EnumDescriptor
556 return getDescriptor();
557 }
558 public static final com.google.protobuf.Descriptors.EnumDescriptor
560 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(2);
561 }
562
563 private static final ConflictMinimizationAlgorithm[] VALUES = values();
564
566 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
567 if (desc.getType() != getDescriptor()) {
568 throw new java.lang.IllegalArgumentException(
569 "EnumValueDescriptor is not for this type.");
570 }
571 return VALUES[desc.getIndex()];
572 }
573
574 private final int value;
575
576 private ConflictMinimizationAlgorithm(int value) {
577 this.value = value;
578 }
579
580 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ConflictMinimizationAlgorithm)
581 }
582
591 implements com.google.protobuf.ProtocolMessageEnum {
612 ;
613
617 public static final int NO_BINARY_MINIMIZATION_VALUE = 0;
621 public static final int BINARY_MINIMIZATION_FIRST_VALUE = 1;
625 public static final int BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION_VALUE = 4;
629 public static final int BINARY_MINIMIZATION_WITH_REACHABILITY_VALUE = 2;
633 public static final int EXPERIMENTAL_BINARY_MINIMIZATION_VALUE = 3;
634
635
636 public final int getNumber() {
637 return value;
638 }
639
645 @java.lang.Deprecated
646 public static BinaryMinizationAlgorithm valueOf(int value) {
647 return forNumber(value);
648 }
649
654 public static BinaryMinizationAlgorithm forNumber(int value) {
655 switch (value) {
656 case 0: return NO_BINARY_MINIMIZATION;
657 case 1: return BINARY_MINIMIZATION_FIRST;
658 case 4: return BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION;
659 case 2: return BINARY_MINIMIZATION_WITH_REACHABILITY;
660 case 3: return EXPERIMENTAL_BINARY_MINIMIZATION;
661 default: return null;
662 }
663 }
664
665 public static com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>
667 return internalValueMap;
668 }
669 private static final com.google.protobuf.Internal.EnumLiteMap<
670 BinaryMinizationAlgorithm> internalValueMap =
671 new com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>() {
672 public BinaryMinizationAlgorithm findValueByNumber(int number) {
674 }
675 };
676
677 public final com.google.protobuf.Descriptors.EnumValueDescriptor
679 return getDescriptor().getValues().get(ordinal());
680 }
681 public final com.google.protobuf.Descriptors.EnumDescriptor
683 return getDescriptor();
684 }
685 public static final com.google.protobuf.Descriptors.EnumDescriptor
687 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(3);
688 }
689
690 private static final BinaryMinizationAlgorithm[] VALUES = values();
691
693 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
694 if (desc.getType() != getDescriptor()) {
695 throw new java.lang.IllegalArgumentException(
696 "EnumValueDescriptor is not for this type.");
697 }
698 return VALUES[desc.getIndex()];
699 }
700
701 private final int value;
702
703 private BinaryMinizationAlgorithm(int value) {
704 this.value = value;
705 }
706
707 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.BinaryMinizationAlgorithm)
708 }
709
720 implements com.google.protobuf.ProtocolMessageEnum {
745 ;
746
754 public static final int PROTECTION_NONE_VALUE = 0;
762 public static final int PROTECTION_ALWAYS_VALUE = 1;
770 public static final int PROTECTION_LBD_VALUE = 2;
771
772
773 public final int getNumber() {
774 return value;
775 }
776
782 @java.lang.Deprecated
783 public static ClauseProtection valueOf(int value) {
784 return forNumber(value);
785 }
786
791 public static ClauseProtection forNumber(int value) {
792 switch (value) {
793 case 0: return PROTECTION_NONE;
794 case 1: return PROTECTION_ALWAYS;
795 case 2: return PROTECTION_LBD;
796 default: return null;
797 }
798 }
799
800 public static com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>
802 return internalValueMap;
803 }
804 private static final com.google.protobuf.Internal.EnumLiteMap<
805 ClauseProtection> internalValueMap =
806 new com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>() {
807 public ClauseProtection findValueByNumber(int number) {
808 return ClauseProtection.forNumber(number);
809 }
810 };
811
812 public final com.google.protobuf.Descriptors.EnumValueDescriptor
814 return getDescriptor().getValues().get(ordinal());
815 }
816 public final com.google.protobuf.Descriptors.EnumDescriptor
818 return getDescriptor();
819 }
820 public static final com.google.protobuf.Descriptors.EnumDescriptor
822 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(4);
823 }
824
825 private static final ClauseProtection[] VALUES = values();
826
828 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
829 if (desc.getType() != getDescriptor()) {
830 throw new java.lang.IllegalArgumentException(
831 "EnumValueDescriptor is not for this type.");
832 }
833 return VALUES[desc.getIndex()];
834 }
835
836 private final int value;
837
838 private ClauseProtection(int value) {
839 this.value = value;
840 }
841
842 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseProtection)
843 }
844
853 public enum ClauseOrdering
854 implements com.google.protobuf.ProtocolMessageEnum {
871 ;
872
880 public static final int CLAUSE_ACTIVITY_VALUE = 0;
888 public static final int CLAUSE_LBD_VALUE = 1;
889
890
891 public final int getNumber() {
892 return value;
893 }
894
900 @java.lang.Deprecated
901 public static ClauseOrdering valueOf(int value) {
902 return forNumber(value);
903 }
904
909 public static ClauseOrdering forNumber(int value) {
910 switch (value) {
911 case 0: return CLAUSE_ACTIVITY;
912 case 1: return CLAUSE_LBD;
913 default: return null;
914 }
915 }
916
917 public static com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>
919 return internalValueMap;
920 }
921 private static final com.google.protobuf.Internal.EnumLiteMap<
922 ClauseOrdering> internalValueMap =
923 new com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>() {
924 public ClauseOrdering findValueByNumber(int number) {
925 return ClauseOrdering.forNumber(number);
926 }
927 };
928
929 public final com.google.protobuf.Descriptors.EnumValueDescriptor
931 return getDescriptor().getValues().get(ordinal());
932 }
933 public final com.google.protobuf.Descriptors.EnumDescriptor
935 return getDescriptor();
936 }
937 public static final com.google.protobuf.Descriptors.EnumDescriptor
939 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(5);
940 }
941
942 private static final ClauseOrdering[] VALUES = values();
943
944 public static ClauseOrdering valueOf(
945 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
946 if (desc.getType() != getDescriptor()) {
947 throw new java.lang.IllegalArgumentException(
948 "EnumValueDescriptor is not for this type.");
949 }
950 return VALUES[desc.getIndex()];
951 }
952
953 private final int value;
954
955 private ClauseOrdering(int value) {
956 this.value = value;
957 }
958
959 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseOrdering)
960 }
961
975 implements com.google.protobuf.ProtocolMessageEnum {
1012 ;
1013
1017 public static final int NO_RESTART_VALUE = 0;
1025 public static final int LUBY_RESTART_VALUE = 1;
1033 public static final int DL_MOVING_AVERAGE_RESTART_VALUE = 2;
1041 public static final int LBD_MOVING_AVERAGE_RESTART_VALUE = 3;
1049 public static final int FIXED_RESTART_VALUE = 4;
1050
1051
1052 public final int getNumber() {
1053 return value;
1054 }
1055
1061 @java.lang.Deprecated
1062 public static RestartAlgorithm valueOf(int value) {
1063 return forNumber(value);
1064 }
1065
1070 public static RestartAlgorithm forNumber(int value) {
1071 switch (value) {
1072 case 0: return NO_RESTART;
1073 case 1: return LUBY_RESTART;
1074 case 2: return DL_MOVING_AVERAGE_RESTART;
1075 case 3: return LBD_MOVING_AVERAGE_RESTART;
1076 case 4: return FIXED_RESTART;
1077 default: return null;
1078 }
1079 }
1080
1081 public static com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>
1083 return internalValueMap;
1084 }
1085 private static final com.google.protobuf.Internal.EnumLiteMap<
1086 RestartAlgorithm> internalValueMap =
1087 new com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>() {
1088 public RestartAlgorithm findValueByNumber(int number) {
1089 return RestartAlgorithm.forNumber(number);
1090 }
1091 };
1092
1093 public final com.google.protobuf.Descriptors.EnumValueDescriptor
1095 return getDescriptor().getValues().get(ordinal());
1096 }
1097 public final com.google.protobuf.Descriptors.EnumDescriptor
1099 return getDescriptor();
1100 }
1101 public static final com.google.protobuf.Descriptors.EnumDescriptor
1103 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(6);
1104 }
1105
1106 private static final RestartAlgorithm[] VALUES = values();
1107
1109 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1110 if (desc.getType() != getDescriptor()) {
1111 throw new java.lang.IllegalArgumentException(
1112 "EnumValueDescriptor is not for this type.");
1113 }
1114 return VALUES[desc.getIndex()];
1115 }
1116
1117 private final int value;
1118
1119 private RestartAlgorithm(int value) {
1120 this.value = value;
1121 }
1122
1123 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.RestartAlgorithm)
1124 }
1125
1134 implements com.google.protobuf.ProtocolMessageEnum {
1147 ;
1148
1152 public static final int DEFAULT_ASSUMPTION_ORDER_VALUE = 0;
1156 public static final int ORDER_ASSUMPTION_BY_DEPTH_VALUE = 1;
1160 public static final int ORDER_ASSUMPTION_BY_WEIGHT_VALUE = 2;
1161
1162
1163 public final int getNumber() {
1164 return value;
1165 }
1166
1172 @java.lang.Deprecated
1173 public static MaxSatAssumptionOrder valueOf(int value) {
1174 return forNumber(value);
1175 }
1176
1181 public static MaxSatAssumptionOrder forNumber(int value) {
1182 switch (value) {
1183 case 0: return DEFAULT_ASSUMPTION_ORDER;
1184 case 1: return ORDER_ASSUMPTION_BY_DEPTH;
1185 case 2: return ORDER_ASSUMPTION_BY_WEIGHT;
1186 default: return null;
1187 }
1188 }
1189
1190 public static com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>
1192 return internalValueMap;
1193 }
1194 private static final com.google.protobuf.Internal.EnumLiteMap<
1195 MaxSatAssumptionOrder> internalValueMap =
1196 new com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>() {
1197 public MaxSatAssumptionOrder findValueByNumber(int number) {
1198 return MaxSatAssumptionOrder.forNumber(number);
1199 }
1200 };
1201
1202 public final com.google.protobuf.Descriptors.EnumValueDescriptor
1204 return getDescriptor().getValues().get(ordinal());
1205 }
1206 public final com.google.protobuf.Descriptors.EnumDescriptor
1208 return getDescriptor();
1209 }
1210 public static final com.google.protobuf.Descriptors.EnumDescriptor
1212 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(7);
1213 }
1214
1215 private static final MaxSatAssumptionOrder[] VALUES = values();
1216
1218 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1219 if (desc.getType() != getDescriptor()) {
1220 throw new java.lang.IllegalArgumentException(
1221 "EnumValueDescriptor is not for this type.");
1222 }
1223 return VALUES[desc.getIndex()];
1224 }
1225
1226 private final int value;
1227
1228 private MaxSatAssumptionOrder(int value) {
1229 this.value = value;
1230 }
1231
1232 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatAssumptionOrder)
1233 }
1234
1243 implements com.google.protobuf.ProtocolMessageEnum {
1272 ;
1273
1281 public static final int STRATIFICATION_NONE_VALUE = 0;
1290 public static final int STRATIFICATION_DESCENT_VALUE = 1;
1301 public static final int STRATIFICATION_ASCENT_VALUE = 2;
1302
1303
1304 public final int getNumber() {
1305 return value;
1306 }
1307
1313 @java.lang.Deprecated
1314 public static MaxSatStratificationAlgorithm valueOf(int value) {
1315 return forNumber(value);
1316 }
1317
1322 public static MaxSatStratificationAlgorithm forNumber(int value) {
1323 switch (value) {
1324 case 0: return STRATIFICATION_NONE;
1325 case 1: return STRATIFICATION_DESCENT;
1326 case 2: return STRATIFICATION_ASCENT;
1327 default: return null;
1328 }
1329 }
1330
1331 public static com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>
1333 return internalValueMap;
1334 }
1335 private static final com.google.protobuf.Internal.EnumLiteMap<
1336 MaxSatStratificationAlgorithm> internalValueMap =
1337 new com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>() {
1338 public MaxSatStratificationAlgorithm findValueByNumber(int number) {
1340 }
1341 };
1342
1343 public final com.google.protobuf.Descriptors.EnumValueDescriptor
1345 return getDescriptor().getValues().get(ordinal());
1346 }
1347 public final com.google.protobuf.Descriptors.EnumDescriptor
1349 return getDescriptor();
1350 }
1351 public static final com.google.protobuf.Descriptors.EnumDescriptor
1353 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(8);
1354 }
1355
1356 private static final MaxSatStratificationAlgorithm[] VALUES = values();
1357
1359 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1360 if (desc.getType() != getDescriptor()) {
1361 throw new java.lang.IllegalArgumentException(
1362 "EnumValueDescriptor is not for this type.");
1363 }
1364 return VALUES[desc.getIndex()];
1365 }
1366
1367 private final int value;
1368
1369 private MaxSatStratificationAlgorithm(int value) {
1370 this.value = value;
1371 }
1372
1373 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatStratificationAlgorithm)
1374 }
1375
1384 implements com.google.protobuf.ProtocolMessageEnum {
1465 ;
1466
1477 public static final int AUTOMATIC_SEARCH_VALUE = 0;
1487 public static final int FIXED_SEARCH_VALUE = 1;
1496 public static final int PORTFOLIO_SEARCH_VALUE = 2;
1505 public static final int LP_SEARCH_VALUE = 3;
1515 public static final int PSEUDO_COST_SEARCH_VALUE = 4;
1525 public static final int PORTFOLIO_WITH_QUICK_RESTART_SEARCH_VALUE = 5;
1535 public static final int HINT_SEARCH_VALUE = 6;
1546 public static final int PARTIAL_FIXED_SEARCH_VALUE = 7;
1547
1548
1549 public final int getNumber() {
1550 return value;
1551 }
1552
1558 @java.lang.Deprecated
1559 public static SearchBranching valueOf(int value) {
1560 return forNumber(value);
1561 }
1562
1567 public static SearchBranching forNumber(int value) {
1568 switch (value) {
1569 case 0: return AUTOMATIC_SEARCH;
1570 case 1: return FIXED_SEARCH;
1571 case 2: return PORTFOLIO_SEARCH;
1572 case 3: return LP_SEARCH;
1573 case 4: return PSEUDO_COST_SEARCH;
1574 case 5: return PORTFOLIO_WITH_QUICK_RESTART_SEARCH;
1575 case 6: return HINT_SEARCH;
1576 case 7: return PARTIAL_FIXED_SEARCH;
1577 default: return null;
1578 }
1579 }
1580
1581 public static com.google.protobuf.Internal.EnumLiteMap<SearchBranching>
1583 return internalValueMap;
1584 }
1585 private static final com.google.protobuf.Internal.EnumLiteMap<
1586 SearchBranching> internalValueMap =
1587 new com.google.protobuf.Internal.EnumLiteMap<SearchBranching>() {
1588 public SearchBranching findValueByNumber(int number) {
1589 return SearchBranching.forNumber(number);
1590 }
1591 };
1592
1593 public final com.google.protobuf.Descriptors.EnumValueDescriptor
1595 return getDescriptor().getValues().get(ordinal());
1596 }
1597 public final com.google.protobuf.Descriptors.EnumDescriptor
1599 return getDescriptor();
1600 }
1601 public static final com.google.protobuf.Descriptors.EnumDescriptor
1603 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(9);
1604 }
1605
1606 private static final SearchBranching[] VALUES = values();
1607
1609 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1610 if (desc.getType() != getDescriptor()) {
1611 throw new java.lang.IllegalArgumentException(
1612 "EnumValueDescriptor is not for this type.");
1613 }
1614 return VALUES[desc.getIndex()];
1615 }
1616
1617 private final int value;
1618
1619 private SearchBranching(int value) {
1620 this.value = value;
1621 }
1622
1623 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.SearchBranching)
1624 }
1625
1630 implements com.google.protobuf.ProtocolMessageEnum {
1677 ;
1678
1687 public static final int SPLIT_STRATEGY_AUTO_VALUE = 0;
1700 public static final int SPLIT_STRATEGY_DISCREPANCY_VALUE = 1;
1708 public static final int SPLIT_STRATEGY_OBJECTIVE_LB_VALUE = 2;
1716 public static final int SPLIT_STRATEGY_BALANCED_TREE_VALUE = 3;
1724 public static final int SPLIT_STRATEGY_FIRST_PROPOSAL_VALUE = 4;
1725
1726
1727 public final int getNumber() {
1728 return value;
1729 }
1730
1736 @java.lang.Deprecated
1737 public static SharedTreeSplitStrategy valueOf(int value) {
1738 return forNumber(value);
1739 }
1740
1745 public static SharedTreeSplitStrategy forNumber(int value) {
1746 switch (value) {
1747 case 0: return SPLIT_STRATEGY_AUTO;
1748 case 1: return SPLIT_STRATEGY_DISCREPANCY;
1749 case 2: return SPLIT_STRATEGY_OBJECTIVE_LB;
1750 case 3: return SPLIT_STRATEGY_BALANCED_TREE;
1751 case 4: return SPLIT_STRATEGY_FIRST_PROPOSAL;
1752 default: return null;
1753 }
1754 }
1755
1756 public static com.google.protobuf.Internal.EnumLiteMap<SharedTreeSplitStrategy>
1758 return internalValueMap;
1759 }
1760 private static final com.google.protobuf.Internal.EnumLiteMap<
1761 SharedTreeSplitStrategy> internalValueMap =
1762 new com.google.protobuf.Internal.EnumLiteMap<SharedTreeSplitStrategy>() {
1763 public SharedTreeSplitStrategy findValueByNumber(int number) {
1764 return SharedTreeSplitStrategy.forNumber(number);
1765 }
1766 };
1767
1768 public final com.google.protobuf.Descriptors.EnumValueDescriptor
1770 return getDescriptor().getValues().get(ordinal());
1771 }
1772 public final com.google.protobuf.Descriptors.EnumDescriptor
1774 return getDescriptor();
1775 }
1776 public static final com.google.protobuf.Descriptors.EnumDescriptor
1778 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(10);
1779 }
1780
1781 private static final SharedTreeSplitStrategy[] VALUES = values();
1782
1784 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1785 if (desc.getType() != getDescriptor()) {
1786 throw new java.lang.IllegalArgumentException(
1787 "EnumValueDescriptor is not for this type.");
1788 }
1789 return VALUES[desc.getIndex()];
1790 }
1791
1792 private final int value;
1793
1794 private SharedTreeSplitStrategy(int value) {
1795 this.value = value;
1796 }
1797
1798 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.SharedTreeSplitStrategy)
1799 }
1800
1809 implements com.google.protobuf.ProtocolMessageEnum {
1850 ;
1851
1859 public static final int NEAREST_INTEGER_VALUE = 0;
1869 public static final int LOCK_BASED_VALUE = 1;
1878 public static final int ACTIVE_LOCK_BASED_VALUE = 3;
1891 public static final int PROPAGATION_ASSISTED_VALUE = 2;
1892
1893
1894 public final int getNumber() {
1895 return value;
1896 }
1897
1903 @java.lang.Deprecated
1904 public static FPRoundingMethod valueOf(int value) {
1905 return forNumber(value);
1906 }
1907
1912 public static FPRoundingMethod forNumber(int value) {
1913 switch (value) {
1914 case 0: return NEAREST_INTEGER;
1915 case 1: return LOCK_BASED;
1916 case 3: return ACTIVE_LOCK_BASED;
1917 case 2: return PROPAGATION_ASSISTED;
1918 default: return null;
1919 }
1920 }
1921
1922 public static com.google.protobuf.Internal.EnumLiteMap<FPRoundingMethod>
1924 return internalValueMap;
1925 }
1926 private static final com.google.protobuf.Internal.EnumLiteMap<
1927 FPRoundingMethod> internalValueMap =
1928 new com.google.protobuf.Internal.EnumLiteMap<FPRoundingMethod>() {
1929 public FPRoundingMethod findValueByNumber(int number) {
1930 return FPRoundingMethod.forNumber(number);
1931 }
1932 };
1933
1934 public final com.google.protobuf.Descriptors.EnumValueDescriptor
1936 return getDescriptor().getValues().get(ordinal());
1937 }
1938 public final com.google.protobuf.Descriptors.EnumDescriptor
1940 return getDescriptor();
1941 }
1942 public static final com.google.protobuf.Descriptors.EnumDescriptor
1944 return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(11);
1945 }
1946
1947 private static final FPRoundingMethod[] VALUES = values();
1948
1950 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1951 if (desc.getType() != getDescriptor()) {
1952 throw new java.lang.IllegalArgumentException(
1953 "EnumValueDescriptor is not for this type.");
1954 }
1955 return VALUES[desc.getIndex()];
1956 }
1957
1958 private final int value;
1959
1960 private FPRoundingMethod(int value) {
1961 this.value = value;
1962 }
1963
1964 // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.FPRoundingMethod)
1965 }
1966
1967 private int bitField0_;
1968 private int bitField1_;
1969 private int bitField2_;
1970 private int bitField3_;
1971 private int bitField4_;
1972 private int bitField5_;
1973 private int bitField6_;
1974 public static final int NAME_FIELD_NUMBER = 171;
1975 @SuppressWarnings("serial")
1976 private volatile java.lang.Object name_ = "";
1986 @java.lang.Override
1987 public boolean hasName() {
1988 return ((bitField0_ & 0x00000001) != 0);
1989 }
1999 @java.lang.Override
2000 public java.lang.String getName() {
2001 java.lang.Object ref = name_;
2002 if (ref instanceof java.lang.String) {
2003 return (java.lang.String) ref;
2004 } else {
2005 com.google.protobuf.ByteString bs =
2006 (com.google.protobuf.ByteString) ref;
2007 java.lang.String s = bs.toStringUtf8();
2008 if (bs.isValidUtf8()) {
2009 name_ = s;
2010 }
2011 return s;
2012 }
2013 }
2023 @java.lang.Override
2024 public com.google.protobuf.ByteString
2026 java.lang.Object ref = name_;
2027 if (ref instanceof java.lang.String) {
2028 com.google.protobuf.ByteString b =
2029 com.google.protobuf.ByteString.copyFromUtf8(
2030 (java.lang.String) ref);
2031 name_ = b;
2032 return b;
2033 } else {
2034 return (com.google.protobuf.ByteString) ref;
2035 }
2036 }
2037
2038 public static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER = 1;
2039 private int preferredVariableOrder_ = 0;
2044 @java.lang.Override public boolean hasPreferredVariableOrder() {
2045 return ((bitField0_ & 0x00000002) != 0);
2046 }
2052 com.google.ortools.sat.SatParameters.VariableOrder result = com.google.ortools.sat.SatParameters.VariableOrder.forNumber(preferredVariableOrder_);
2053 return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
2054 }
2055
2056 public static final int INITIAL_POLARITY_FIELD_NUMBER = 2;
2057 private int initialPolarity_ = 1;
2062 @java.lang.Override public boolean hasInitialPolarity() {
2063 return ((bitField0_ & 0x00000004) != 0);
2064 }
2070 com.google.ortools.sat.SatParameters.Polarity result = com.google.ortools.sat.SatParameters.Polarity.forNumber(initialPolarity_);
2071 return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
2072 }
2073
2074 public static final int USE_PHASE_SAVING_FIELD_NUMBER = 44;
2075 private boolean usePhaseSaving_ = true;
2094 @java.lang.Override
2095 public boolean hasUsePhaseSaving() {
2096 return ((bitField0_ & 0x00000008) != 0);
2097 }
2116 @java.lang.Override
2117 public boolean getUsePhaseSaving() {
2118 return usePhaseSaving_;
2119 }
2120
2121 public static final int POLARITY_REPHASE_INCREMENT_FIELD_NUMBER = 168;
2122 private int polarityRephaseIncrement_ = 1000;
2133 @java.lang.Override
2135 return ((bitField0_ & 0x00000010) != 0);
2136 }
2147 @java.lang.Override
2149 return polarityRephaseIncrement_;
2150 }
2151
2152 public static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER = 45;
2153 private double randomPolarityRatio_ = 0D;
2166 @java.lang.Override
2167 public boolean hasRandomPolarityRatio() {
2168 return ((bitField0_ & 0x00000020) != 0);
2169 }
2182 @java.lang.Override
2183 public double getRandomPolarityRatio() {
2184 return randomPolarityRatio_;
2185 }
2186
2187 public static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER = 32;
2188 private double randomBranchesRatio_ = 0D;
2199 @java.lang.Override
2200 public boolean hasRandomBranchesRatio() {
2201 return ((bitField0_ & 0x00000040) != 0);
2202 }
2213 @java.lang.Override
2214 public double getRandomBranchesRatio() {
2215 return randomBranchesRatio_;
2216 }
2217
2218 public static final int USE_ERWA_HEURISTIC_FIELD_NUMBER = 75;
2219 private boolean useErwaHeuristic_ = false;
2230 @java.lang.Override
2231 public boolean hasUseErwaHeuristic() {
2232 return ((bitField0_ & 0x00000080) != 0);
2233 }
2244 @java.lang.Override
2245 public boolean getUseErwaHeuristic() {
2246 return useErwaHeuristic_;
2247 }
2248
2249 public static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER = 76;
2250 private double initialVariablesActivity_ = 0D;
2264 @java.lang.Override
2266 return ((bitField0_ & 0x00000100) != 0);
2267 }
2281 @java.lang.Override
2283 return initialVariablesActivity_;
2284 }
2285
2287 private boolean alsoBumpVariablesInConflictReasons_ = false;
2299 @java.lang.Override
2301 return ((bitField0_ & 0x00000200) != 0);
2302 }
2314 @java.lang.Override
2316 return alsoBumpVariablesInConflictReasons_;
2317 }
2318
2319 public static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER = 4;
2320 private int minimizationAlgorithm_ = 2;
2325 @java.lang.Override public boolean hasMinimizationAlgorithm() {
2326 return ((bitField0_ & 0x00000400) != 0);
2327 }
2333 com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm result = com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.forNumber(minimizationAlgorithm_);
2334 return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
2335 }
2336
2338 private int binaryMinimizationAlgorithm_ = 1;
2343 @java.lang.Override public boolean hasBinaryMinimizationAlgorithm() {
2344 return ((bitField0_ & 0x00000800) != 0);
2345 }
2351 com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm result = com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.forNumber(binaryMinimizationAlgorithm_);
2352 return result == null ? com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.BINARY_MINIMIZATION_FIRST : result;
2353 }
2354
2356 private boolean subsumptionDuringConflictAnalysis_ = true;
2368 @java.lang.Override
2370 return ((bitField0_ & 0x00001000) != 0);
2371 }
2383 @java.lang.Override
2385 return subsumptionDuringConflictAnalysis_;
2386 }
2387
2388 public static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER = 11;
2389 private int clauseCleanupPeriod_ = 10000;
2398 @java.lang.Override
2399 public boolean hasClauseCleanupPeriod() {
2400 return ((bitField0_ & 0x00002000) != 0);
2401 }
2410 @java.lang.Override
2412 return clauseCleanupPeriod_;
2413 }
2414
2415 public static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER = 13;
2416 private int clauseCleanupTarget_ = 0;
2426 @java.lang.Override
2427 public boolean hasClauseCleanupTarget() {
2428 return ((bitField0_ & 0x00004000) != 0);
2429 }
2439 @java.lang.Override
2441 return clauseCleanupTarget_;
2442 }
2443
2444 public static final int CLAUSE_CLEANUP_RATIO_FIELD_NUMBER = 190;
2445 private double clauseCleanupRatio_ = 0.5D;
2456 @java.lang.Override
2457 public boolean hasClauseCleanupRatio() {
2458 return ((bitField0_ & 0x00008000) != 0);
2459 }
2470 @java.lang.Override
2471 public double getClauseCleanupRatio() {
2472 return clauseCleanupRatio_;
2473 }
2474
2475 public static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER = 58;
2476 private int clauseCleanupProtection_ = 0;
2481 @java.lang.Override public boolean hasClauseCleanupProtection() {
2482 return ((bitField0_ & 0x00010000) != 0);
2483 }
2489 com.google.ortools.sat.SatParameters.ClauseProtection result = com.google.ortools.sat.SatParameters.ClauseProtection.forNumber(clauseCleanupProtection_);
2490 return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
2491 }
2492
2493 public static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER = 59;
2494 private int clauseCleanupLbdBound_ = 5;
2504 @java.lang.Override
2505 public boolean hasClauseCleanupLbdBound() {
2506 return ((bitField0_ & 0x00020000) != 0);
2507 }
2517 @java.lang.Override
2519 return clauseCleanupLbdBound_;
2520 }
2521
2522 public static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER = 60;
2523 private int clauseCleanupOrdering_ = 0;
2528 @java.lang.Override public boolean hasClauseCleanupOrdering() {
2529 return ((bitField0_ & 0x00040000) != 0);
2530 }
2536 com.google.ortools.sat.SatParameters.ClauseOrdering result = com.google.ortools.sat.SatParameters.ClauseOrdering.forNumber(clauseCleanupOrdering_);
2537 return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
2538 }
2539
2540 public static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER = 46;
2541 private int pbCleanupIncrement_ = 200;
2550 @java.lang.Override
2551 public boolean hasPbCleanupIncrement() {
2552 return ((bitField0_ & 0x00080000) != 0);
2553 }
2562 @java.lang.Override
2564 return pbCleanupIncrement_;
2565 }
2566
2567 public static final int PB_CLEANUP_RATIO_FIELD_NUMBER = 47;
2568 private double pbCleanupRatio_ = 0.5D;
2573 @java.lang.Override
2574 public boolean hasPbCleanupRatio() {
2575 return ((bitField0_ & 0x00100000) != 0);
2576 }
2581 @java.lang.Override
2582 public double getPbCleanupRatio() {
2583 return pbCleanupRatio_;
2584 }
2585
2587 private int minimizeWithPropagationRestartPeriod_ = 10;
2608 @java.lang.Override
2610 return ((bitField0_ & 0x00200000) != 0);
2611 }
2632 @java.lang.Override
2634 return minimizeWithPropagationRestartPeriod_;
2635 }
2636
2638 private int minimizeWithPropagationNumDecisions_ = 1000;
2643 @java.lang.Override
2645 return ((bitField0_ & 0x00400000) != 0);
2646 }
2651 @java.lang.Override
2653 return minimizeWithPropagationNumDecisions_;
2654 }
2655
2656 public static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER = 15;
2657 private double variableActivityDecay_ = 0.8D;
2673 @java.lang.Override
2674 public boolean hasVariableActivityDecay() {
2675 return ((bitField0_ & 0x00800000) != 0);
2676 }
2692 @java.lang.Override
2694 return variableActivityDecay_;
2695 }
2696
2697 public static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER = 16;
2698 private double maxVariableActivityValue_ = 1e+100D;
2703 @java.lang.Override
2705 return ((bitField0_ & 0x01000000) != 0);
2706 }
2711 @java.lang.Override
2713 return maxVariableActivityValue_;
2714 }
2715
2716 public static final int GLUCOSE_MAX_DECAY_FIELD_NUMBER = 22;
2717 private double glucoseMaxDecay_ = 0.95D;
2730 @java.lang.Override
2731 public boolean hasGlucoseMaxDecay() {
2732 return ((bitField0_ & 0x02000000) != 0);
2733 }
2746 @java.lang.Override
2747 public double getGlucoseMaxDecay() {
2748 return glucoseMaxDecay_;
2749 }
2750
2751 public static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER = 23;
2752 private double glucoseDecayIncrement_ = 0.01D;
2757 @java.lang.Override
2758 public boolean hasGlucoseDecayIncrement() {
2759 return ((bitField0_ & 0x04000000) != 0);
2760 }
2765 @java.lang.Override
2767 return glucoseDecayIncrement_;
2768 }
2769
2771 private int glucoseDecayIncrementPeriod_ = 5000;
2776 @java.lang.Override
2778 return ((bitField0_ & 0x08000000) != 0);
2779 }
2784 @java.lang.Override
2786 return glucoseDecayIncrementPeriod_;
2787 }
2788
2789 public static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER = 17;
2790 private double clauseActivityDecay_ = 0.999D;
2799 @java.lang.Override
2800 public boolean hasClauseActivityDecay() {
2801 return ((bitField0_ & 0x10000000) != 0);
2802 }
2811 @java.lang.Override
2812 public double getClauseActivityDecay() {
2813 return clauseActivityDecay_;
2814 }
2815
2816 public static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER = 18;
2817 private double maxClauseActivityValue_ = 1e+20D;
2822 @java.lang.Override
2823 public boolean hasMaxClauseActivityValue() {
2824 return ((bitField0_ & 0x20000000) != 0);
2825 }
2830 @java.lang.Override
2832 return maxClauseActivityValue_;
2833 }
2834
2835 public static final int RESTART_ALGORITHMS_FIELD_NUMBER = 61;
2836 @SuppressWarnings("serial")
2837 private java.util.List<java.lang.Integer> restartAlgorithms_;
2838 private static final com.google.protobuf.Internal.ListAdapter.Converter<
2839 java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm> restartAlgorithms_converter_ =
2840 new com.google.protobuf.Internal.ListAdapter.Converter<
2841 java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>() {
2842 public com.google.ortools.sat.SatParameters.RestartAlgorithm convert(java.lang.Integer from) {
2843 com.google.ortools.sat.SatParameters.RestartAlgorithm result = com.google.ortools.sat.SatParameters.RestartAlgorithm.forNumber(from);
2844 return result == null ? com.google.ortools.sat.SatParameters.RestartAlgorithm.NO_RESTART : result;
2845 }
2846 };
2863 @java.lang.Override
2864 public java.util.List<com.google.ortools.sat.SatParameters.RestartAlgorithm> getRestartAlgorithmsList() {
2865 return new com.google.protobuf.Internal.ListAdapter<
2866 java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
2867 }
2884 @java.lang.Override
2886 return restartAlgorithms_.size();
2887 }
2905 @java.lang.Override
2907 return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
2908 }
2909
2910 public static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER = 70;
2911 @SuppressWarnings("serial")
2912 private volatile java.lang.Object defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
2917 @java.lang.Override
2919 return ((bitField0_ & 0x40000000) != 0);
2920 }
2925 @java.lang.Override
2926 public java.lang.String getDefaultRestartAlgorithms() {
2927 java.lang.Object ref = defaultRestartAlgorithms_;
2928 if (ref instanceof java.lang.String) {
2929 return (java.lang.String) ref;
2930 } else {
2931 com.google.protobuf.ByteString bs =
2932 (com.google.protobuf.ByteString) ref;
2933 java.lang.String s = bs.toStringUtf8();
2934 if (bs.isValidUtf8()) {
2935 defaultRestartAlgorithms_ = s;
2936 }
2937 return s;
2938 }
2939 }
2944 @java.lang.Override
2945 public com.google.protobuf.ByteString
2947 java.lang.Object ref = defaultRestartAlgorithms_;
2948 if (ref instanceof java.lang.String) {
2949 com.google.protobuf.ByteString b =
2950 com.google.protobuf.ByteString.copyFromUtf8(
2951 (java.lang.String) ref);
2952 defaultRestartAlgorithms_ = b;
2953 return b;
2954 } else {
2955 return (com.google.protobuf.ByteString) ref;
2956 }
2957 }
2958
2959 public static final int RESTART_PERIOD_FIELD_NUMBER = 30;
2960 private int restartPeriod_ = 50;
2970 @java.lang.Override
2971 public boolean hasRestartPeriod() {
2972 return ((bitField0_ & 0x80000000) != 0);
2973 }
2983 @java.lang.Override
2984 public int getRestartPeriod() {
2985 return restartPeriod_;
2986 }
2987
2988 public static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER = 62;
2989 private int restartRunningWindowSize_ = 50;
2998 @java.lang.Override
3000 return ((bitField1_ & 0x00000001) != 0);
3001 }
3010 @java.lang.Override
3012 return restartRunningWindowSize_;
3013 }
3014
3015 public static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER = 63;
3016 private double restartDlAverageRatio_ = 1D;
3026 @java.lang.Override
3027 public boolean hasRestartDlAverageRatio() {
3028 return ((bitField1_ & 0x00000002) != 0);
3029 }
3039 @java.lang.Override
3041 return restartDlAverageRatio_;
3042 }
3043
3044 public static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER = 71;
3045 private double restartLbdAverageRatio_ = 1D;
3050 @java.lang.Override
3051 public boolean hasRestartLbdAverageRatio() {
3052 return ((bitField1_ & 0x00000004) != 0);
3053 }
3058 @java.lang.Override
3060 return restartLbdAverageRatio_;
3061 }
3062
3063 public static final int USE_BLOCKING_RESTART_FIELD_NUMBER = 64;
3064 private boolean useBlockingRestart_ = false;
3075 @java.lang.Override
3076 public boolean hasUseBlockingRestart() {
3077 return ((bitField1_ & 0x00000008) != 0);
3078 }
3089 @java.lang.Override
3090 public boolean getUseBlockingRestart() {
3091 return useBlockingRestart_;
3092 }
3093
3094 public static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER = 65;
3095 private int blockingRestartWindowSize_ = 5000;
3100 @java.lang.Override
3102 return ((bitField1_ & 0x00000010) != 0);
3103 }
3108 @java.lang.Override
3110 return blockingRestartWindowSize_;
3111 }
3112
3113 public static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER = 66;
3114 private double blockingRestartMultiplier_ = 1.4D;
3119 @java.lang.Override
3121 return ((bitField1_ & 0x00000020) != 0);
3122 }
3127 @java.lang.Override
3129 return blockingRestartMultiplier_;
3130 }
3131
3133 private int numConflictsBeforeStrategyChanges_ = 0;
3144 @java.lang.Override
3146 return ((bitField1_ & 0x00000040) != 0);
3147 }
3158 @java.lang.Override
3160 return numConflictsBeforeStrategyChanges_;
3161 }
3162
3164 private double strategyChangeIncreaseRatio_ = 0D;
3174 @java.lang.Override
3176 return ((bitField1_ & 0x00000080) != 0);
3177 }
3187 @java.lang.Override
3189 return strategyChangeIncreaseRatio_;
3190 }
3191
3192 public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 36;
3193 private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
3203 @java.lang.Override
3204 public boolean hasMaxTimeInSeconds() {
3205 return ((bitField1_ & 0x00000100) != 0);
3206 }
3216 @java.lang.Override
3217 public double getMaxTimeInSeconds() {
3218 return maxTimeInSeconds_;
3219 }
3220
3221 public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 67;
3222 private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
3233 @java.lang.Override
3234 public boolean hasMaxDeterministicTime() {
3235 return ((bitField1_ & 0x00000200) != 0);
3236 }
3247 @java.lang.Override
3248 public double getMaxDeterministicTime() {
3249 return maxDeterministicTime_;
3250 }
3251
3252 public static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER = 37;
3253 private long maxNumberOfConflicts_ = 9223372036854775807L;
3268 @java.lang.Override
3269 public boolean hasMaxNumberOfConflicts() {
3270 return ((bitField1_ & 0x00000400) != 0);
3271 }
3286 @java.lang.Override
3288 return maxNumberOfConflicts_;
3289 }
3290
3291 public static final int MAX_MEMORY_IN_MB_FIELD_NUMBER = 40;
3292 private long maxMemoryInMb_ = 10000L;
3306 @java.lang.Override
3307 public boolean hasMaxMemoryInMb() {
3308 return ((bitField1_ & 0x00000800) != 0);
3309 }
3323 @java.lang.Override
3324 public long getMaxMemoryInMb() {
3325 return maxMemoryInMb_;
3326 }
3327
3328 public static final int ABSOLUTE_GAP_LIMIT_FIELD_NUMBER = 159;
3329 private double absoluteGapLimit_ = 0.0001D;
3355 @java.lang.Override
3356 public boolean hasAbsoluteGapLimit() {
3357 return ((bitField1_ & 0x00001000) != 0);
3358 }
3384 @java.lang.Override
3385 public double getAbsoluteGapLimit() {
3386 return absoluteGapLimit_;
3387 }
3388
3389 public static final int RELATIVE_GAP_LIMIT_FIELD_NUMBER = 160;
3390 private double relativeGapLimit_ = 0D;
3395 @java.lang.Override
3396 public boolean hasRelativeGapLimit() {
3397 return ((bitField1_ & 0x00002000) != 0);
3398 }
3403 @java.lang.Override
3404 public double getRelativeGapLimit() {
3405 return relativeGapLimit_;
3406 }
3407
3408 public static final int RANDOM_SEED_FIELD_NUMBER = 31;
3409 private int randomSeed_ = 1;
3424 @java.lang.Override
3425 public boolean hasRandomSeed() {
3426 return ((bitField1_ & 0x00004000) != 0);
3427 }
3442 @java.lang.Override
3443 public int getRandomSeed() {
3444 return randomSeed_;
3445 }
3446
3447 public static final int PERMUTE_VARIABLE_RANDOMLY_FIELD_NUMBER = 178;
3448 private boolean permuteVariableRandomly_ = false;
3460 @java.lang.Override
3462 return ((bitField1_ & 0x00008000) != 0);
3463 }
3475 @java.lang.Override
3477 return permuteVariableRandomly_;
3478 }
3479
3481 private boolean permutePresolveConstraintOrder_ = false;
3486 @java.lang.Override
3488 return ((bitField1_ & 0x00010000) != 0);
3489 }
3494 @java.lang.Override
3496 return permutePresolveConstraintOrder_;
3497 }
3498
3499 public static final int USE_ABSL_RANDOM_FIELD_NUMBER = 180;
3500 private boolean useAbslRandom_ = false;
3505 @java.lang.Override
3506 public boolean hasUseAbslRandom() {
3507 return ((bitField1_ & 0x00020000) != 0);
3508 }
3513 @java.lang.Override
3514 public boolean getUseAbslRandom() {
3515 return useAbslRandom_;
3516 }
3517
3518 public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 41;
3519 private boolean logSearchProgress_ = false;
3530 @java.lang.Override
3531 public boolean hasLogSearchProgress() {
3532 return ((bitField1_ & 0x00040000) != 0);
3533 }
3544 @java.lang.Override
3545 public boolean getLogSearchProgress() {
3546 return logSearchProgress_;
3547 }
3548
3549 public static final int LOG_FREQUENCY_IN_SECONDS_FIELD_NUMBER = 212;
3550 private double logFrequencyInSeconds_ = -1D;
3561 @java.lang.Override
3562 public boolean hasLogFrequencyInSeconds() {
3563 return ((bitField1_ & 0x00080000) != 0);
3564 }
3575 @java.lang.Override
3577 return logFrequencyInSeconds_;
3578 }
3579
3581 private double modelReductionLogFrequencyInSeconds_ = 5D;
3586 @java.lang.Override
3588 return ((bitField1_ & 0x00100000) != 0);
3589 }
3594 @java.lang.Override
3596 return modelReductionLogFrequencyInSeconds_;
3597 }
3598
3599 public static final int LOG_SUBSOLVER_STATISTICS_FIELD_NUMBER = 189;
3600 private boolean logSubsolverStatistics_ = false;
3612 @java.lang.Override
3613 public boolean hasLogSubsolverStatistics() {
3614 return ((bitField1_ & 0x00200000) != 0);
3615 }
3627 @java.lang.Override
3628 public boolean getLogSubsolverStatistics() {
3629 return logSubsolverStatistics_;
3630 }
3631
3632 public static final int LOG_PREFIX_FIELD_NUMBER = 185;
3633 @SuppressWarnings("serial")
3634 private volatile java.lang.Object logPrefix_ = "";
3643 @java.lang.Override
3644 public boolean hasLogPrefix() {
3645 return ((bitField1_ & 0x00400000) != 0);
3646 }
3655 @java.lang.Override
3656 public java.lang.String getLogPrefix() {
3657 java.lang.Object ref = logPrefix_;
3658 if (ref instanceof java.lang.String) {
3659 return (java.lang.String) ref;
3660 } else {
3661 com.google.protobuf.ByteString bs =
3662 (com.google.protobuf.ByteString) ref;
3663 java.lang.String s = bs.toStringUtf8();
3664 if (bs.isValidUtf8()) {
3665 logPrefix_ = s;
3666 }
3667 return s;
3668 }
3669 }
3678 @java.lang.Override
3679 public com.google.protobuf.ByteString
3681 java.lang.Object ref = logPrefix_;
3682 if (ref instanceof java.lang.String) {
3683 com.google.protobuf.ByteString b =
3684 com.google.protobuf.ByteString.copyFromUtf8(
3685 (java.lang.String) ref);
3686 logPrefix_ = b;
3687 return b;
3688 } else {
3689 return (com.google.protobuf.ByteString) ref;
3690 }
3691 }
3692
3693 public static final int LOG_TO_STDOUT_FIELD_NUMBER = 186;
3694 private boolean logToStdout_ = true;
3703 @java.lang.Override
3704 public boolean hasLogToStdout() {
3705 return ((bitField1_ & 0x00800000) != 0);
3706 }
3715 @java.lang.Override
3716 public boolean getLogToStdout() {
3717 return logToStdout_;
3718 }
3719
3720 public static final int LOG_TO_RESPONSE_FIELD_NUMBER = 187;
3721 private boolean logToResponse_ = false;
3730 @java.lang.Override
3731 public boolean hasLogToResponse() {
3732 return ((bitField1_ & 0x01000000) != 0);
3733 }
3742 @java.lang.Override
3743 public boolean getLogToResponse() {
3744 return logToResponse_;
3745 }
3746
3747 public static final int USE_PB_RESOLUTION_FIELD_NUMBER = 43;
3748 private boolean usePbResolution_ = false;
3760 @java.lang.Override
3761 public boolean hasUsePbResolution() {
3762 return ((bitField1_ & 0x02000000) != 0);
3763 }
3775 @java.lang.Override
3776 public boolean getUsePbResolution() {
3777 return usePbResolution_;
3778 }
3779
3781 private boolean minimizeReductionDuringPbResolution_ = false;
3793 @java.lang.Override
3795 return ((bitField1_ & 0x04000000) != 0);
3796 }
3808 @java.lang.Override
3810 return minimizeReductionDuringPbResolution_;
3811 }
3812
3814 private boolean countAssumptionLevelsInLbd_ = true;
3831 @java.lang.Override
3833 return ((bitField1_ & 0x08000000) != 0);
3834 }
3851 @java.lang.Override
3853 return countAssumptionLevelsInLbd_;
3854 }
3855
3856 public static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER = 54;
3857 private int presolveBveThreshold_ = 500;
3868 @java.lang.Override
3869 public boolean hasPresolveBveThreshold() {
3870 return ((bitField1_ & 0x10000000) != 0);
3871 }
3882 @java.lang.Override
3884 return presolveBveThreshold_;
3885 }
3886
3887 public static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER = 55;
3888 private int presolveBveClauseWeight_ = 3;
3898 @java.lang.Override
3900 return ((bitField1_ & 0x20000000) != 0);
3901 }
3911 @java.lang.Override
3913 return presolveBveClauseWeight_;
3914 }
3915
3917 private double probingDeterministicTimeLimit_ = 1D;
3930 @java.lang.Override
3932 return ((bitField1_ & 0x40000000) != 0);
3933 }
3946 @java.lang.Override
3948 return probingDeterministicTimeLimit_;
3949 }
3950
3952 private double presolveProbingDeterministicTimeLimit_ = 30D;
3957 @java.lang.Override
3959 return ((bitField1_ & 0x80000000) != 0);
3960 }
3965 @java.lang.Override
3967 return presolveProbingDeterministicTimeLimit_;
3968 }
3969
3970 public static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER = 88;
3971 private boolean presolveBlockedClause_ = true;
3981 @java.lang.Override
3982 public boolean hasPresolveBlockedClause() {
3983 return ((bitField2_ & 0x00000001) != 0);
3984 }
3994 @java.lang.Override
3995 public boolean getPresolveBlockedClause() {
3996 return presolveBlockedClause_;
3997 }
3998
3999 public static final int PRESOLVE_USE_BVA_FIELD_NUMBER = 72;
4000 private boolean presolveUseBva_ = true;
4009 @java.lang.Override
4010 public boolean hasPresolveUseBva() {
4011 return ((bitField2_ & 0x00000002) != 0);
4012 }
4021 @java.lang.Override
4022 public boolean getPresolveUseBva() {
4023 return presolveUseBva_;
4024 }
4025
4026 public static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER = 73;
4027 private int presolveBvaThreshold_ = 1;
4039 @java.lang.Override
4040 public boolean hasPresolveBvaThreshold() {
4041 return ((bitField2_ & 0x00000004) != 0);
4042 }
4054 @java.lang.Override
4056 return presolveBvaThreshold_;
4057 }
4058
4059 public static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER = 138;
4060 private int maxPresolveIterations_ = 3;
4071 @java.lang.Override
4072 public boolean hasMaxPresolveIterations() {
4073 return ((bitField2_ & 0x00000008) != 0);
4074 }
4085 @java.lang.Override
4087 return maxPresolveIterations_;
4088 }
4089
4090 public static final int CP_MODEL_PRESOLVE_FIELD_NUMBER = 86;
4091 private boolean cpModelPresolve_ = true;
4100 @java.lang.Override
4101 public boolean hasCpModelPresolve() {
4102 return ((bitField2_ & 0x00000010) != 0);
4103 }
4112 @java.lang.Override
4113 public boolean getCpModelPresolve() {
4114 return cpModelPresolve_;
4115 }
4116
4117 public static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER = 110;
4118 private int cpModelProbingLevel_ = 2;
4127 @java.lang.Override
4128 public boolean hasCpModelProbingLevel() {
4129 return ((bitField2_ & 0x00000020) != 0);
4130 }
4139 @java.lang.Override
4141 return cpModelProbingLevel_;
4142 }
4143
4144 public static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER = 93;
4145 private boolean cpModelUseSatPresolve_ = true;
4154 @java.lang.Override
4155 public boolean hasCpModelUseSatPresolve() {
4156 return ((bitField2_ & 0x00000040) != 0);
4157 }
4166 @java.lang.Override
4167 public boolean getCpModelUseSatPresolve() {
4168 return cpModelUseSatPresolve_;
4169 }
4170
4171 public static final int USE_SAT_INPROCESSING_FIELD_NUMBER = 163;
4172 private boolean useSatInprocessing_ = false;
4177 @java.lang.Override
4178 public boolean hasUseSatInprocessing() {
4179 return ((bitField2_ & 0x00000080) != 0);
4180 }
4185 @java.lang.Override
4186 public boolean getUseSatInprocessing() {
4187 return useSatInprocessing_;
4188 }
4189
4190 public static final int DETECT_TABLE_WITH_COST_FIELD_NUMBER = 216;
4191 private boolean detectTableWithCost_ = false;
4205 @java.lang.Override
4206 public boolean hasDetectTableWithCost() {
4207 return ((bitField2_ & 0x00000100) != 0);
4208 }
4222 @java.lang.Override
4223 public boolean getDetectTableWithCost() {
4224 return detectTableWithCost_;
4225 }
4226
4227 public static final int TABLE_COMPRESSION_LEVEL_FIELD_NUMBER = 217;
4228 private int tableCompressionLevel_ = 2;
4240 @java.lang.Override
4241 public boolean hasTableCompressionLevel() {
4242 return ((bitField2_ & 0x00000200) != 0);
4243 }
4255 @java.lang.Override
4257 return tableCompressionLevel_;
4258 }
4259
4260 public static final int EXPAND_ALLDIFF_CONSTRAINTS_FIELD_NUMBER = 170;
4261 private boolean expandAlldiffConstraints_ = false;
4271 @java.lang.Override
4273 return ((bitField2_ & 0x00000400) != 0);
4274 }
4284 @java.lang.Override
4286 return expandAlldiffConstraints_;
4287 }
4288
4289 public static final int EXPAND_RESERVOIR_CONSTRAINTS_FIELD_NUMBER = 182;
4290 private boolean expandReservoirConstraints_ = true;
4300 @java.lang.Override
4302 return ((bitField2_ & 0x00000800) != 0);
4303 }
4313 @java.lang.Override
4315 return expandReservoirConstraints_;
4316 }
4317
4318 public static final int DISABLE_CONSTRAINT_EXPANSION_FIELD_NUMBER = 181;
4319 private boolean disableConstraintExpansion_ = false;
4329 @java.lang.Override
4331 return ((bitField2_ & 0x00001000) != 0);
4332 }
4342 @java.lang.Override
4344 return disableConstraintExpansion_;
4345 }
4346
4348 private boolean encodeComplexLinearConstraintWithInteger_ = false;
4358 @java.lang.Override
4360 return ((bitField2_ & 0x00002000) != 0);
4361 }
4371 @java.lang.Override
4373 return encodeComplexLinearConstraintWithInteger_;
4374 }
4375
4376 public static final int MERGE_NO_OVERLAP_WORK_LIMIT_FIELD_NUMBER = 145;
4377 private double mergeNoOverlapWorkLimit_ = 1000000000000D;
4390 @java.lang.Override
4392 return ((bitField2_ & 0x00004000) != 0);
4393 }
4406 @java.lang.Override
4408 return mergeNoOverlapWorkLimit_;
4409 }
4410
4411 public static final int MERGE_AT_MOST_ONE_WORK_LIMIT_FIELD_NUMBER = 146;
4412 private double mergeAtMostOneWorkLimit_ = 100000000D;
4417 @java.lang.Override
4419 return ((bitField2_ & 0x00008000) != 0);
4420 }
4425 @java.lang.Override
4427 return mergeAtMostOneWorkLimit_;
4428 }
4429
4430 public static final int PRESOLVE_SUBSTITUTION_LEVEL_FIELD_NUMBER = 147;
4431 private int presolveSubstitutionLevel_ = 1;
4443 @java.lang.Override
4445 return ((bitField2_ & 0x00010000) != 0);
4446 }
4458 @java.lang.Override
4460 return presolveSubstitutionLevel_;
4461 }
4462
4464 private boolean presolveExtractIntegerEnforcement_ = false;
4478 @java.lang.Override
4480 return ((bitField2_ & 0x00020000) != 0);
4481 }
4495 @java.lang.Override
4497 return presolveExtractIntegerEnforcement_;
4498 }
4499
4500 public static final int PRESOLVE_INCLUSION_WORK_LIMIT_FIELD_NUMBER = 201;
4501 private long presolveInclusionWorkLimit_ = 100000000L;
4516 @java.lang.Override
4518 return ((bitField2_ & 0x00040000) != 0);
4519 }
4534 @java.lang.Override
4536 return presolveInclusionWorkLimit_;
4537 }
4538
4539 public static final int IGNORE_NAMES_FIELD_NUMBER = 202;
4540 private boolean ignoreNames_ = true;
4549 @java.lang.Override
4550 public boolean hasIgnoreNames() {
4551 return ((bitField2_ & 0x00080000) != 0);
4552 }
4561 @java.lang.Override
4562 public boolean getIgnoreNames() {
4563 return ignoreNames_;
4564 }
4565
4566 public static final int INFER_ALL_DIFFS_FIELD_NUMBER = 233;
4567 private boolean inferAllDiffs_ = true;
4580 @java.lang.Override
4581 public boolean hasInferAllDiffs() {
4582 return ((bitField2_ & 0x00100000) != 0);
4583 }
4596 @java.lang.Override
4597 public boolean getInferAllDiffs() {
4598 return inferAllDiffs_;
4599 }
4600
4601 public static final int FIND_BIG_LINEAR_OVERLAP_FIELD_NUMBER = 234;
4602 private boolean findBigLinearOverlap_ = true;
4614 @java.lang.Override
4615 public boolean hasFindBigLinearOverlap() {
4616 return ((bitField2_ & 0x00200000) != 0);
4617 }
4629 @java.lang.Override
4630 public boolean getFindBigLinearOverlap() {
4631 return findBigLinearOverlap_;
4632 }
4633
4634 public static final int NUM_WORKERS_FIELD_NUMBER = 206;
4635 private int numWorkers_ = 0;
4657 @java.lang.Override
4658 public boolean hasNumWorkers() {
4659 return ((bitField2_ & 0x00400000) != 0);
4660 }
4682 @java.lang.Override
4683 public int getNumWorkers() {
4684 return numWorkers_;
4685 }
4686
4687 public static final int NUM_SEARCH_WORKERS_FIELD_NUMBER = 100;
4688 private int numSearchWorkers_ = 0;
4693 @java.lang.Override
4694 public boolean hasNumSearchWorkers() {
4695 return ((bitField2_ & 0x00800000) != 0);
4696 }
4701 @java.lang.Override
4702 public int getNumSearchWorkers() {
4703 return numSearchWorkers_;
4704 }
4705
4706 public static final int MIN_NUM_LNS_WORKERS_FIELD_NUMBER = 211;
4707 private int minNumLnsWorkers_ = 2;
4720 @java.lang.Override
4721 public boolean hasMinNumLnsWorkers() {
4722 return ((bitField2_ & 0x01000000) != 0);
4723 }
4736 @java.lang.Override
4737 public int getMinNumLnsWorkers() {
4738 return minNumLnsWorkers_;
4739 }
4740
4741 public static final int SUBSOLVERS_FIELD_NUMBER = 207;
4742 @SuppressWarnings("serial")
4743 private com.google.protobuf.LazyStringArrayList subsolvers_ =
4744 com.google.protobuf.LazyStringArrayList.emptyList();
4780 public com.google.protobuf.ProtocolStringList
4782 return subsolvers_;
4783 }
4819 public int getSubsolversCount() {
4820 return subsolvers_.size();
4821 }
4858 public java.lang.String getSubsolvers(int index) {
4859 return subsolvers_.get(index);
4860 }
4897 public com.google.protobuf.ByteString
4899 return subsolvers_.getByteString(index);
4900 }
4901
4902 public static final int EXTRA_SUBSOLVERS_FIELD_NUMBER = 219;
4903 @SuppressWarnings("serial")
4904 private com.google.protobuf.LazyStringArrayList extraSubsolvers_ =
4905 com.google.protobuf.LazyStringArrayList.emptyList();
4915 public com.google.protobuf.ProtocolStringList
4917 return extraSubsolvers_;
4918 }
4929 return extraSubsolvers_.size();
4930 }
4941 public java.lang.String getExtraSubsolvers(int index) {
4942 return extraSubsolvers_.get(index);
4943 }
4954 public com.google.protobuf.ByteString
4956 return extraSubsolvers_.getByteString(index);
4957 }
4958
4959 public static final int IGNORE_SUBSOLVERS_FIELD_NUMBER = 209;
4960 @SuppressWarnings("serial")
4961 private com.google.protobuf.LazyStringArrayList ignoreSubsolvers_ =
4962 com.google.protobuf.LazyStringArrayList.emptyList();
4972 public com.google.protobuf.ProtocolStringList
4974 return ignoreSubsolvers_;
4975 }
4986 return ignoreSubsolvers_.size();
4987 }
4998 public java.lang.String getIgnoreSubsolvers(int index) {
4999 return ignoreSubsolvers_.get(index);
5000 }
5011 public com.google.protobuf.ByteString
5013 return ignoreSubsolvers_.getByteString(index);
5014 }
5015
5016 public static final int SUBSOLVER_PARAMS_FIELD_NUMBER = 210;
5017 @SuppressWarnings("serial")
5018 private java.util.List<com.google.ortools.sat.SatParameters> subsolverParams_;
5029 @java.lang.Override
5030 public java.util.List<com.google.ortools.sat.SatParameters> getSubsolverParamsList() {
5031 return subsolverParams_;
5032 }
5043 @java.lang.Override
5044 public java.util.List<? extends com.google.ortools.sat.SatParametersOrBuilder>
5046 return subsolverParams_;
5047 }
5058 @java.lang.Override
5060 return subsolverParams_.size();
5061 }
5072 @java.lang.Override
5074 return subsolverParams_.get(index);
5075 }
5086 @java.lang.Override
5088 int index) {
5089 return subsolverParams_.get(index);
5090 }
5091
5092 public static final int INTERLEAVE_SEARCH_FIELD_NUMBER = 136;
5093 private boolean interleaveSearch_ = false;
5107 @java.lang.Override
5108 public boolean hasInterleaveSearch() {
5109 return ((bitField2_ & 0x02000000) != 0);
5110 }
5124 @java.lang.Override
5125 public boolean getInterleaveSearch() {
5126 return interleaveSearch_;
5127 }
5128
5129 public static final int INTERLEAVE_BATCH_SIZE_FIELD_NUMBER = 134;
5130 private int interleaveBatchSize_ = 0;
5135 @java.lang.Override
5136 public boolean hasInterleaveBatchSize() {
5137 return ((bitField2_ & 0x04000000) != 0);
5138 }
5143 @java.lang.Override
5145 return interleaveBatchSize_;
5146 }
5147
5148 public static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER = 113;
5149 private boolean shareObjectiveBounds_ = true;
5158 @java.lang.Override
5159 public boolean hasShareObjectiveBounds() {
5160 return ((bitField2_ & 0x08000000) != 0);
5161 }
5170 @java.lang.Override
5171 public boolean getShareObjectiveBounds() {
5172 return shareObjectiveBounds_;
5173 }
5174
5175 public static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER = 114;
5176 private boolean shareLevelZeroBounds_ = true;
5185 @java.lang.Override
5186 public boolean hasShareLevelZeroBounds() {
5187 return ((bitField2_ & 0x10000000) != 0);
5188 }
5197 @java.lang.Override
5198 public boolean getShareLevelZeroBounds() {
5199 return shareLevelZeroBounds_;
5200 }
5201
5202 public static final int SHARE_BINARY_CLAUSES_FIELD_NUMBER = 203;
5203 private boolean shareBinaryClauses_ = true;
5212 @java.lang.Override
5213 public boolean hasShareBinaryClauses() {
5214 return ((bitField2_ & 0x20000000) != 0);
5215 }
5224 @java.lang.Override
5225 public boolean getShareBinaryClauses() {
5226 return shareBinaryClauses_;
5227 }
5228
5230 private boolean debugPostsolveWithFullSolver_ = false;
5241 @java.lang.Override
5243 return ((bitField2_ & 0x40000000) != 0);
5244 }
5255 @java.lang.Override
5257 return debugPostsolveWithFullSolver_;
5258 }
5259
5261 private int debugMaxNumPresolveOperations_ = 0;
5271 @java.lang.Override
5273 return ((bitField2_ & 0x80000000) != 0);
5274 }
5284 @java.lang.Override
5286 return debugMaxNumPresolveOperations_;
5287 }
5288
5289 public static final int DEBUG_CRASH_ON_BAD_HINT_FIELD_NUMBER = 195;
5290 private boolean debugCrashOnBadHint_ = false;
5299 @java.lang.Override
5300 public boolean hasDebugCrashOnBadHint() {
5301 return ((bitField3_ & 0x00000001) != 0);
5302 }
5311 @java.lang.Override
5312 public boolean getDebugCrashOnBadHint() {
5313 return debugCrashOnBadHint_;
5314 }
5315
5316 public static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER = 35;
5317 private boolean useOptimizationHints_ = true;
5329 @java.lang.Override
5330 public boolean hasUseOptimizationHints() {
5331 return ((bitField3_ & 0x00000002) != 0);
5332 }
5344 @java.lang.Override
5345 public boolean getUseOptimizationHints() {
5346 return useOptimizationHints_;
5347 }
5348
5349 public static final int MINIMIZE_CORE_FIELD_NUMBER = 50;
5350 private boolean minimizeCore_ = true;
5359 @java.lang.Override
5360 public boolean hasMinimizeCore() {
5361 return ((bitField3_ & 0x00000004) != 0);
5362 }
5371 @java.lang.Override
5372 public boolean getMinimizeCore() {
5373 return minimizeCore_;
5374 }
5375
5376 public static final int FIND_MULTIPLE_CORES_FIELD_NUMBER = 84;
5377 private boolean findMultipleCores_ = true;
5387 @java.lang.Override
5388 public boolean hasFindMultipleCores() {
5389 return ((bitField3_ & 0x00000008) != 0);
5390 }
5400 @java.lang.Override
5401 public boolean getFindMultipleCores() {
5402 return findMultipleCores_;
5403 }
5404
5405 public static final int COVER_OPTIMIZATION_FIELD_NUMBER = 89;
5406 private boolean coverOptimization_ = true;
5417 @java.lang.Override
5418 public boolean hasCoverOptimization() {
5419 return ((bitField3_ & 0x00000010) != 0);
5420 }
5431 @java.lang.Override
5432 public boolean getCoverOptimization() {
5433 return coverOptimization_;
5434 }
5435
5436 public static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER = 51;
5437 private int maxSatAssumptionOrder_ = 0;
5442 @java.lang.Override public boolean hasMaxSatAssumptionOrder() {
5443 return ((bitField3_ & 0x00000020) != 0);
5444 }
5450 com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder result = com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.forNumber(maxSatAssumptionOrder_);
5451 return result == null ? com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.DEFAULT_ASSUMPTION_ORDER : result;
5452 }
5453
5455 private boolean maxSatReverseAssumptionOrder_ = false;
5465 @java.lang.Override
5467 return ((bitField3_ & 0x00000040) != 0);
5468 }
5478 @java.lang.Override
5480 return maxSatReverseAssumptionOrder_;
5481 }
5482
5483 public static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER = 53;
5484 private int maxSatStratification_ = 1;
5489 @java.lang.Override public boolean hasMaxSatStratification() {
5490 return ((bitField3_ & 0x00000080) != 0);
5491 }
5497 com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm result = com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.forNumber(maxSatStratification_);
5498 return result == null ? com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.STRATIFICATION_DESCENT : result;
5499 }
5500
5502 private double propagationLoopDetectionFactor_ = 10D;
5519 @java.lang.Override
5521 return ((bitField3_ & 0x00000100) != 0);
5522 }
5539 @java.lang.Override
5541 return propagationLoopDetectionFactor_;
5542 }
5543
5545 private boolean usePrecedencesInDisjunctiveConstraint_ = true;
5562 @java.lang.Override
5564 return ((bitField3_ & 0x00000200) != 0);
5565 }
5582 @java.lang.Override
5584 return usePrecedencesInDisjunctiveConstraint_;
5585 }
5586
5588 private int maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = 60;
5601 @java.lang.Override
5603 return ((bitField3_ & 0x00000400) != 0);
5604 }
5617 @java.lang.Override
5619 return maxSizeToCreatePrecedenceLiteralsInDisjunctive_;
5620 }
5621
5623 private boolean useStrongPropagationInDisjunctive_ = false;
5632 @java.lang.Override
5634 return ((bitField3_ & 0x00000800) != 0);
5635 }
5644 @java.lang.Override
5646 return useStrongPropagationInDisjunctive_;
5647 }
5648
5650 private boolean useOverloadCheckerInCumulative_ = false;
5665 @java.lang.Override
5667 return ((bitField3_ & 0x00001000) != 0);
5668 }
5683 @java.lang.Override
5685 return useOverloadCheckerInCumulative_;
5686 }
5687
5689 private boolean useTimetableEdgeFindingInCumulative_ = false;
5704 @java.lang.Override
5706 return ((bitField3_ & 0x00002000) != 0);
5707 }
5722 @java.lang.Override
5724 return useTimetableEdgeFindingInCumulative_;
5725 }
5726
5728 private boolean useHardPrecedencesInCumulative_ = false;
5742 @java.lang.Override
5744 return ((bitField3_ & 0x00004000) != 0);
5745 }
5759 @java.lang.Override
5761 return useHardPrecedencesInCumulative_;
5762 }
5763
5764 public static final int EXPLOIT_ALL_PRECEDENCES_FIELD_NUMBER = 220;
5765 private boolean exploitAllPrecedences_ = false;
5770 @java.lang.Override
5771 public boolean hasExploitAllPrecedences() {
5772 return ((bitField3_ & 0x00008000) != 0);
5773 }
5778 @java.lang.Override
5779 public boolean getExploitAllPrecedences() {
5780 return exploitAllPrecedences_;
5781 }
5782
5784 private boolean useDisjunctiveConstraintInCumulative_ = true;
5802 @java.lang.Override
5804 return ((bitField3_ & 0x00010000) != 0);
5805 }
5823 @java.lang.Override
5825 return useDisjunctiveConstraintInCumulative_;
5826 }
5827
5829 private boolean useTimetablingInNoOverlap2D_ = false;
5842 @java.lang.Override
5844 return ((bitField3_ & 0x00020000) != 0);
5845 }
5858 @java.lang.Override
5860 return useTimetablingInNoOverlap2D_;
5861 }
5862
5864 private boolean useEnergeticReasoningInNoOverlap2D_ = false;
5875 @java.lang.Override
5877 return ((bitField3_ & 0x00040000) != 0);
5878 }
5889 @java.lang.Override
5891 return useEnergeticReasoningInNoOverlap2D_;
5892 }
5893
5895 private boolean usePairwiseReasoningInNoOverlap2D_ = false;
5905 @java.lang.Override
5907 return ((bitField3_ & 0x00080000) != 0);
5908 }
5918 @java.lang.Override
5920 return usePairwiseReasoningInNoOverlap2D_;
5921 }
5922
5923 public static final int USE_DUAL_SCHEDULING_HEURISTICS_FIELD_NUMBER = 214;
5924 private boolean useDualSchedulingHeuristics_ = true;
5935 @java.lang.Override
5937 return ((bitField3_ & 0x00100000) != 0);
5938 }
5949 @java.lang.Override
5951 return useDualSchedulingHeuristics_;
5952 }
5953
5954 public static final int LINEARIZATION_LEVEL_FIELD_NUMBER = 90;
5955 private int linearizationLevel_ = 1;
5967 @java.lang.Override
5968 public boolean hasLinearizationLevel() {
5969 return ((bitField3_ & 0x00200000) != 0);
5970 }
5982 @java.lang.Override
5984 return linearizationLevel_;
5985 }
5986
5987 public static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER = 107;
5988 private int booleanEncodingLevel_ = 1;
5998 @java.lang.Override
5999 public boolean hasBooleanEncodingLevel() {
6000 return ((bitField3_ & 0x00400000) != 0);
6001 }
6011 @java.lang.Override
6013 return booleanEncodingLevel_;
6014 }
6015
6017 private int maxDomainSizeWhenEncodingEqNeqConstraints_ = 16;
6029 @java.lang.Override
6031 return ((bitField3_ & 0x00800000) != 0);
6032 }
6044 @java.lang.Override
6046 return maxDomainSizeWhenEncodingEqNeqConstraints_;
6047 }
6048
6049 public static final int MAX_NUM_CUTS_FIELD_NUMBER = 91;
6050 private int maxNumCuts_ = 10000;
6063 @java.lang.Override
6064 public boolean hasMaxNumCuts() {
6065 return ((bitField3_ & 0x01000000) != 0);
6066 }
6079 @java.lang.Override
6080 public int getMaxNumCuts() {
6081 return maxNumCuts_;
6082 }
6083
6084 public static final int CUT_LEVEL_FIELD_NUMBER = 196;
6085 private int cutLevel_ = 1;
6096 @java.lang.Override
6097 public boolean hasCutLevel() {
6098 return ((bitField3_ & 0x02000000) != 0);
6099 }
6110 @java.lang.Override
6111 public int getCutLevel() {
6112 return cutLevel_;
6113 }
6114
6115 public static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER = 92;
6116 private boolean onlyAddCutsAtLevelZero_ = false;
6126 @java.lang.Override
6127 public boolean hasOnlyAddCutsAtLevelZero() {
6128 return ((bitField3_ & 0x04000000) != 0);
6129 }
6139 @java.lang.Override
6140 public boolean getOnlyAddCutsAtLevelZero() {
6141 return onlyAddCutsAtLevelZero_;
6142 }
6143
6144 public static final int ADD_OBJECTIVE_CUT_FIELD_NUMBER = 197;
6145 private boolean addObjectiveCut_ = false;
6158 @java.lang.Override
6159 public boolean hasAddObjectiveCut() {
6160 return ((bitField3_ & 0x08000000) != 0);
6161 }
6174 @java.lang.Override
6175 public boolean getAddObjectiveCut() {
6176 return addObjectiveCut_;
6177 }
6178
6179 public static final int ADD_CG_CUTS_FIELD_NUMBER = 117;
6180 private boolean addCgCuts_ = true;
6190 @java.lang.Override
6191 public boolean hasAddCgCuts() {
6192 return ((bitField3_ & 0x10000000) != 0);
6193 }
6203 @java.lang.Override
6204 public boolean getAddCgCuts() {
6205 return addCgCuts_;
6206 }
6207
6208 public static final int ADD_MIR_CUTS_FIELD_NUMBER = 120;
6209 private boolean addMirCuts_ = true;
6219 @java.lang.Override
6220 public boolean hasAddMirCuts() {
6221 return ((bitField3_ & 0x20000000) != 0);
6222 }
6232 @java.lang.Override
6233 public boolean getAddMirCuts() {
6234 return addMirCuts_;
6235 }
6236
6237 public static final int ADD_ZERO_HALF_CUTS_FIELD_NUMBER = 169;
6238 private boolean addZeroHalfCuts_ = true;
6248 @java.lang.Override
6249 public boolean hasAddZeroHalfCuts() {
6250 return ((bitField3_ & 0x40000000) != 0);
6251 }
6261 @java.lang.Override
6262 public boolean getAddZeroHalfCuts() {
6263 return addZeroHalfCuts_;
6264 }
6265
6266 public static final int ADD_CLIQUE_CUTS_FIELD_NUMBER = 172;
6267 private boolean addCliqueCuts_ = true;
6278 @java.lang.Override
6279 public boolean hasAddCliqueCuts() {
6280 return ((bitField3_ & 0x80000000) != 0);
6281 }
6292 @java.lang.Override
6293 public boolean getAddCliqueCuts() {
6294 return addCliqueCuts_;
6295 }
6296
6297 public static final int MAX_ALL_DIFF_CUT_SIZE_FIELD_NUMBER = 148;
6298 private int maxAllDiffCutSize_ = 64;
6309 @java.lang.Override
6310 public boolean hasMaxAllDiffCutSize() {
6311 return ((bitField4_ & 0x00000001) != 0);
6312 }
6323 @java.lang.Override
6325 return maxAllDiffCutSize_;
6326 }
6327
6328 public static final int ADD_LIN_MAX_CUTS_FIELD_NUMBER = 152;
6329 private boolean addLinMaxCuts_ = true;
6340 @java.lang.Override
6341 public boolean hasAddLinMaxCuts() {
6342 return ((bitField4_ & 0x00000002) != 0);
6343 }
6354 @java.lang.Override
6355 public boolean getAddLinMaxCuts() {
6356 return addLinMaxCuts_;
6357 }
6358
6359 public static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER = 119;
6360 private int maxIntegerRoundingScaling_ = 600;
6376 @java.lang.Override
6378 return ((bitField4_ & 0x00000004) != 0);
6379 }
6395 @java.lang.Override
6397 return maxIntegerRoundingScaling_;
6398 }
6399
6400 public static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER = 112;
6401 private boolean addLpConstraintsLazily_ = true;
6413 @java.lang.Override
6414 public boolean hasAddLpConstraintsLazily() {
6415 return ((bitField4_ & 0x00000008) != 0);
6416 }
6428 @java.lang.Override
6429 public boolean getAddLpConstraintsLazily() {
6430 return addLpConstraintsLazily_;
6431 }
6432
6433 public static final int ROOT_LP_ITERATIONS_FIELD_NUMBER = 227;
6434 private int rootLpIterations_ = 2000;
6446 @java.lang.Override
6447 public boolean hasRootLpIterations() {
6448 return ((bitField4_ & 0x00000010) != 0);
6449 }
6461 @java.lang.Override
6462 public int getRootLpIterations() {
6463 return rootLpIterations_;
6464 }
6465
6467 private double minOrthogonalityForLpConstraints_ = 0.05D;
6480 @java.lang.Override
6482 return ((bitField4_ & 0x00000020) != 0);
6483 }
6496 @java.lang.Override
6498 return minOrthogonalityForLpConstraints_;
6499 }
6500
6501 public static final int MAX_CUT_ROUNDS_AT_LEVEL_ZERO_FIELD_NUMBER = 154;
6502 private int maxCutRoundsAtLevelZero_ = 1;
6511 @java.lang.Override
6513 return ((bitField4_ & 0x00000040) != 0);
6514 }
6523 @java.lang.Override
6525 return maxCutRoundsAtLevelZero_;
6526 }
6527
6528 public static final int MAX_CONSECUTIVE_INACTIVE_COUNT_FIELD_NUMBER = 121;
6529 private int maxConsecutiveInactiveCount_ = 100;
6540 @java.lang.Override
6542 return ((bitField4_ & 0x00000080) != 0);
6543 }
6554 @java.lang.Override
6556 return maxConsecutiveInactiveCount_;
6557 }
6558
6559 public static final int CUT_MAX_ACTIVE_COUNT_VALUE_FIELD_NUMBER = 155;
6560 private double cutMaxActiveCountValue_ = 10000000000D;
6571 @java.lang.Override
6572 public boolean hasCutMaxActiveCountValue() {
6573 return ((bitField4_ & 0x00000100) != 0);
6574 }
6585 @java.lang.Override
6587 return cutMaxActiveCountValue_;
6588 }
6589
6590 public static final int CUT_ACTIVE_COUNT_DECAY_FIELD_NUMBER = 156;
6591 private double cutActiveCountDecay_ = 0.8D;
6596 @java.lang.Override
6597 public boolean hasCutActiveCountDecay() {
6598 return ((bitField4_ & 0x00000200) != 0);
6599 }
6604 @java.lang.Override
6605 public double getCutActiveCountDecay() {
6606 return cutActiveCountDecay_;
6607 }
6608
6609 public static final int CUT_CLEANUP_TARGET_FIELD_NUMBER = 157;
6610 private int cutCleanupTarget_ = 1000;
6619 @java.lang.Override
6620 public boolean hasCutCleanupTarget() {
6621 return ((bitField4_ & 0x00000400) != 0);
6622 }
6631 @java.lang.Override
6632 public int getCutCleanupTarget() {
6633 return cutCleanupTarget_;
6634 }
6635
6636 public static final int NEW_CONSTRAINTS_BATCH_SIZE_FIELD_NUMBER = 122;
6637 private int newConstraintsBatchSize_ = 50;
6647 @java.lang.Override
6649 return ((bitField4_ & 0x00000800) != 0);
6650 }
6660 @java.lang.Override
6662 return newConstraintsBatchSize_;
6663 }
6664
6665 public static final int SEARCH_BRANCHING_FIELD_NUMBER = 82;
6666 private int searchBranching_ = 0;
6671 @java.lang.Override public boolean hasSearchBranching() {
6672 return ((bitField4_ & 0x00001000) != 0);
6673 }
6679 com.google.ortools.sat.SatParameters.SearchBranching result = com.google.ortools.sat.SatParameters.SearchBranching.forNumber(searchBranching_);
6680 return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
6681 }
6682
6683 public static final int HINT_CONFLICT_LIMIT_FIELD_NUMBER = 153;
6684 private int hintConflictLimit_ = 10;
6693 @java.lang.Override
6694 public boolean hasHintConflictLimit() {
6695 return ((bitField4_ & 0x00002000) != 0);
6696 }
6705 @java.lang.Override
6707 return hintConflictLimit_;
6708 }
6709
6710 public static final int REPAIR_HINT_FIELD_NUMBER = 167;
6711 private boolean repairHint_ = false;
6723 @java.lang.Override
6724 public boolean hasRepairHint() {
6725 return ((bitField4_ & 0x00004000) != 0);
6726 }
6738 @java.lang.Override
6739 public boolean getRepairHint() {
6740 return repairHint_;
6741 }
6742
6744 private boolean fixVariablesToTheirHintedValue_ = false;
6754 @java.lang.Override
6756 return ((bitField4_ & 0x00008000) != 0);
6757 }
6767 @java.lang.Override
6769 return fixVariablesToTheirHintedValue_;
6770 }
6771
6772 public static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER = 94;
6773 private boolean exploitIntegerLpSolution_ = true;
6785 @java.lang.Override
6787 return ((bitField4_ & 0x00010000) != 0);
6788 }
6800 @java.lang.Override
6802 return exploitIntegerLpSolution_;
6803 }
6804
6805 public static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER = 116;
6806 private boolean exploitAllLpSolution_ = true;
6817 @java.lang.Override
6818 public boolean hasExploitAllLpSolution() {
6819 return ((bitField4_ & 0x00020000) != 0);
6820 }
6831 @java.lang.Override
6832 public boolean getExploitAllLpSolution() {
6833 return exploitAllLpSolution_;
6834 }
6835
6836 public static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER = 130;
6837 private boolean exploitBestSolution_ = false;
6846 @java.lang.Override
6847 public boolean hasExploitBestSolution() {
6848 return ((bitField4_ & 0x00040000) != 0);
6849 }
6858 @java.lang.Override
6859 public boolean getExploitBestSolution() {
6860 return exploitBestSolution_;
6861 }
6862
6863 public static final int EXPLOIT_RELAXATION_SOLUTION_FIELD_NUMBER = 161;
6864 private boolean exploitRelaxationSolution_ = false;
6875 @java.lang.Override
6877 return ((bitField4_ & 0x00080000) != 0);
6878 }
6889 @java.lang.Override
6891 return exploitRelaxationSolution_;
6892 }
6893
6894 public static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER = 131;
6895 private boolean exploitObjective_ = true;
6905 @java.lang.Override
6906 public boolean hasExploitObjective() {
6907 return ((bitField4_ & 0x00100000) != 0);
6908 }
6918 @java.lang.Override
6919 public boolean getExploitObjective() {
6920 return exploitObjective_;
6921 }
6922
6923 public static final int PROBING_PERIOD_AT_ROOT_FIELD_NUMBER = 142;
6924 private long probingPeriodAtRoot_ = 0L;
6935 @java.lang.Override
6936 public boolean hasProbingPeriodAtRoot() {
6937 return ((bitField4_ & 0x00200000) != 0);
6938 }
6949 @java.lang.Override
6951 return probingPeriodAtRoot_;
6952 }
6953
6954 public static final int USE_PROBING_SEARCH_FIELD_NUMBER = 176;
6955 private boolean useProbingSearch_ = false;
6966 @java.lang.Override
6967 public boolean hasUseProbingSearch() {
6968 return ((bitField4_ & 0x00400000) != 0);
6969 }
6980 @java.lang.Override
6981 public boolean getUseProbingSearch() {
6982 return useProbingSearch_;
6983 }
6984
6985 public static final int USE_SHAVING_IN_PROBING_SEARCH_FIELD_NUMBER = 204;
6986 private boolean useShavingInProbingSearch_ = true;
6996 @java.lang.Override
6998 return ((bitField4_ & 0x00800000) != 0);
6999 }
7009 @java.lang.Override
7011 return useShavingInProbingSearch_;
7012 }
7013
7015 private double shavingSearchDeterministicTime_ = 0.001D;
7025 @java.lang.Override
7027 return ((bitField4_ & 0x01000000) != 0);
7028 }
7038 @java.lang.Override
7040 return shavingSearchDeterministicTime_;
7041 }
7042
7043 public static final int USE_OBJECTIVE_LB_SEARCH_FIELD_NUMBER = 228;
7044 private boolean useObjectiveLbSearch_ = false;
7054 @java.lang.Override
7055 public boolean hasUseObjectiveLbSearch() {
7056 return ((bitField4_ & 0x02000000) != 0);
7057 }
7067 @java.lang.Override
7068 public boolean getUseObjectiveLbSearch() {
7069 return useObjectiveLbSearch_;
7070 }
7071
7072 public static final int USE_OBJECTIVE_SHAVING_SEARCH_FIELD_NUMBER = 253;
7073 private boolean useObjectiveShavingSearch_ = false;
7084 @java.lang.Override
7086 return ((bitField4_ & 0x04000000) != 0);
7087 }
7098 @java.lang.Override
7100 return useObjectiveShavingSearch_;
7101 }
7102
7104 private long pseudoCostReliabilityThreshold_ = 100L;
7114 @java.lang.Override
7116 return ((bitField4_ & 0x08000000) != 0);
7117 }
7127 @java.lang.Override
7129 return pseudoCostReliabilityThreshold_;
7130 }
7131
7132 public static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER = 83;
7133 private boolean optimizeWithCore_ = false;
7145 @java.lang.Override
7146 public boolean hasOptimizeWithCore() {
7147 return ((bitField4_ & 0x10000000) != 0);
7148 }
7160 @java.lang.Override
7161 public boolean getOptimizeWithCore() {
7162 return optimizeWithCore_;
7163 }
7164
7165 public static final int OPTIMIZE_WITH_LB_TREE_SEARCH_FIELD_NUMBER = 188;
7166 private boolean optimizeWithLbTreeSearch_ = false;
7179 @java.lang.Override
7181 return ((bitField4_ & 0x20000000) != 0);
7182 }
7195 @java.lang.Override
7197 return optimizeWithLbTreeSearch_;
7198 }
7199
7200 public static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER = 99;
7201 private int binarySearchNumConflicts_ = -1;
7213 @java.lang.Override
7215 return ((bitField4_ & 0x40000000) != 0);
7216 }
7228 @java.lang.Override
7230 return binarySearchNumConflicts_;
7231 }
7232
7233 public static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER = 85;
7234 private boolean optimizeWithMaxHs_ = false;
7248 @java.lang.Override
7249 public boolean hasOptimizeWithMaxHs() {
7250 return ((bitField4_ & 0x80000000) != 0);
7251 }
7265 @java.lang.Override
7266 public boolean getOptimizeWithMaxHs() {
7267 return optimizeWithMaxHs_;
7268 }
7269
7270 public static final int TEST_FEASIBILITY_JUMP_FIELD_NUMBER = 240;
7271 private boolean testFeasibilityJump_ = false;
7284 @java.lang.Override
7285 public boolean hasTestFeasibilityJump() {
7286 return ((bitField5_ & 0x00000001) != 0);
7287 }
7300 @java.lang.Override
7301 public boolean getTestFeasibilityJump() {
7302 return testFeasibilityJump_;
7303 }
7304
7306 private long feasibilityJumpMaxNumValuesScanned_ = 4096L;
7316 @java.lang.Override
7318 return ((bitField5_ & 0x00000002) != 0);
7319 }
7329 @java.lang.Override
7331 return feasibilityJumpMaxNumValuesScanned_;
7332 }
7333
7335 private boolean feasibilityJumpProtectLinearFeasibility_ = true;
7347 @java.lang.Override
7349 return ((bitField5_ & 0x00000004) != 0);
7350 }
7362 @java.lang.Override
7364 return feasibilityJumpProtectLinearFeasibility_;
7365 }
7366
7367 public static final int FEASIBILITY_JUMP_DECAY_FIELD_NUMBER = 242;
7368 private double feasibilityJumpDecay_ = 1D;
7378 @java.lang.Override
7379 public boolean hasFeasibilityJumpDecay() {
7380 return ((bitField5_ & 0x00000008) != 0);
7381 }
7391 @java.lang.Override
7392 public double getFeasibilityJumpDecay() {
7393 return feasibilityJumpDecay_;
7394 }
7395
7397 private double feasibilityJumpVarRandomizationProbability_ = 0D;
7407 @java.lang.Override
7409 return ((bitField5_ & 0x00000010) != 0);
7410 }
7420 @java.lang.Override
7422 return feasibilityJumpVarRandomizationProbability_;
7423 }
7424
7426 private double feasibilityJumpVarPerburbationRangeRatio_ = 0.2D;
7436 @java.lang.Override
7438 return ((bitField5_ & 0x00000020) != 0);
7439 }
7449 @java.lang.Override
7451 return feasibilityJumpVarPerburbationRangeRatio_;
7452 }
7453
7455 private boolean feasibilityJumpEnableRestarts_ = true;
7466 @java.lang.Override
7468 return ((bitField5_ & 0x00000040) != 0);
7469 }
7480 @java.lang.Override
7482 return feasibilityJumpEnableRestarts_;
7483 }
7484
7485 public static final int NUM_VIOLATION_LS_FIELD_NUMBER = 244;
7486 private int numViolationLs_ = 0;
7497 @java.lang.Override
7498 public boolean hasNumViolationLs() {
7499 return ((bitField5_ & 0x00000080) != 0);
7500 }
7511 @java.lang.Override
7512 public int getNumViolationLs() {
7513 return numViolationLs_;
7514 }
7515
7517 private int violationLsPerturbationPeriod_ = 100;
7526 @java.lang.Override
7528 return ((bitField5_ & 0x00000100) != 0);
7529 }
7538 @java.lang.Override
7540 return violationLsPerturbationPeriod_;
7541 }
7542
7543 public static final int SHARED_TREE_NUM_WORKERS_FIELD_NUMBER = 235;
7544 private int sharedTreeNumWorkers_ = 0;
7557 @java.lang.Override
7558 public boolean hasSharedTreeNumWorkers() {
7559 return ((bitField5_ & 0x00000200) != 0);
7560 }
7573 @java.lang.Override
7575 return sharedTreeNumWorkers_;
7576 }
7577
7578 public static final int USE_SHARED_TREE_SEARCH_FIELD_NUMBER = 236;
7579 private boolean useSharedTreeSearch_ = false;
7588 @java.lang.Override
7589 public boolean hasUseSharedTreeSearch() {
7590 return ((bitField5_ & 0x00000400) != 0);
7591 }
7600 @java.lang.Override
7601 public boolean getUseSharedTreeSearch() {
7602 return useSharedTreeSearch_;
7603 }
7604
7606 private double sharedTreeWorkerObjectiveSplitProbability_ = 0.5D;
7617 @java.lang.Override
7619 return ((bitField5_ & 0x00000800) != 0);
7620 }
7631 @java.lang.Override
7633 return sharedTreeWorkerObjectiveSplitProbability_;
7634 }
7635
7637 private int sharedTreeMaxNodesPerWorker_ = 128;
7649 @java.lang.Override
7651 return ((bitField5_ & 0x00001000) != 0);
7652 }
7664 @java.lang.Override
7666 return sharedTreeMaxNodesPerWorker_;
7667 }
7668
7669 public static final int SHARED_TREE_SPLIT_STRATEGY_FIELD_NUMBER = 239;
7670 private int sharedTreeSplitStrategy_ = 0;
7675 @java.lang.Override public boolean hasSharedTreeSplitStrategy() {
7676 return ((bitField5_ & 0x00002000) != 0);
7677 }
7683 com.google.ortools.sat.SatParameters.SharedTreeSplitStrategy result = com.google.ortools.sat.SatParameters.SharedTreeSplitStrategy.forNumber(sharedTreeSplitStrategy_);
7684 return result == null ? com.google.ortools.sat.SatParameters.SharedTreeSplitStrategy.SPLIT_STRATEGY_AUTO : result;
7685 }
7686
7687 public static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER = 87;
7688 private boolean enumerateAllSolutions_ = false;
7703 @java.lang.Override
7704 public boolean hasEnumerateAllSolutions() {
7705 return ((bitField5_ & 0x00004000) != 0);
7706 }
7721 @java.lang.Override
7722 public boolean getEnumerateAllSolutions() {
7723 return enumerateAllSolutions_;
7724 }
7725
7727 private boolean keepAllFeasibleSolutionsInPresolve_ = false;
7743 @java.lang.Override
7745 return ((bitField5_ & 0x00008000) != 0);
7746 }
7762 @java.lang.Override
7764 return keepAllFeasibleSolutionsInPresolve_;
7765 }
7766
7768 private boolean fillTightenedDomainsInResponse_ = false;
7781 @java.lang.Override
7783 return ((bitField5_ & 0x00010000) != 0);
7784 }
7797 @java.lang.Override
7799 return fillTightenedDomainsInResponse_;
7800 }
7801
7803 private boolean fillAdditionalSolutionsInResponse_ = false;
7821 @java.lang.Override
7823 return ((bitField5_ & 0x00020000) != 0);
7824 }
7842 @java.lang.Override
7844 return fillAdditionalSolutionsInResponse_;
7845 }
7846
7847 public static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER = 106;
7848 private boolean instantiateAllVariables_ = true;
7860 @java.lang.Override
7862 return ((bitField5_ & 0x00040000) != 0);
7863 }
7875 @java.lang.Override
7877 return instantiateAllVariables_;
7878 }
7879
7881 private boolean autoDetectGreaterThanAtLeastOneOf_ = true;
7893 @java.lang.Override
7895 return ((bitField5_ & 0x00080000) != 0);
7896 }
7908 @java.lang.Override
7910 return autoDetectGreaterThanAtLeastOneOf_;
7911 }
7912
7913 public static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER = 98;
7914 private boolean stopAfterFirstSolution_ = false;
7923 @java.lang.Override
7924 public boolean hasStopAfterFirstSolution() {
7925 return ((bitField5_ & 0x00100000) != 0);
7926 }
7935 @java.lang.Override
7936 public boolean getStopAfterFirstSolution() {
7937 return stopAfterFirstSolution_;
7938 }
7939
7940 public static final int STOP_AFTER_PRESOLVE_FIELD_NUMBER = 149;
7941 private boolean stopAfterPresolve_ = false;
7951 @java.lang.Override
7952 public boolean hasStopAfterPresolve() {
7953 return ((bitField5_ & 0x00200000) != 0);
7954 }
7964 @java.lang.Override
7965 public boolean getStopAfterPresolve() {
7966 return stopAfterPresolve_;
7967 }
7968
7969 public static final int STOP_AFTER_ROOT_PROPAGATION_FIELD_NUMBER = 252;
7970 private boolean stopAfterRootPropagation_ = false;
7975 @java.lang.Override
7977 return ((bitField5_ & 0x00400000) != 0);
7978 }
7983 @java.lang.Override
7985 return stopAfterRootPropagation_;
7986 }
7987
7988 public static final int USE_LNS_ONLY_FIELD_NUMBER = 101;
7989 private boolean useLnsOnly_ = false;
7998 @java.lang.Override
7999 public boolean hasUseLnsOnly() {
8000 return ((bitField5_ & 0x00800000) != 0);
8001 }
8010 @java.lang.Override
8011 public boolean getUseLnsOnly() {
8012 return useLnsOnly_;
8013 }
8014
8015 public static final int SOLUTION_POOL_SIZE_FIELD_NUMBER = 193;
8016 private int solutionPoolSize_ = 3;
8027 @java.lang.Override
8028 public boolean hasSolutionPoolSize() {
8029 return ((bitField5_ & 0x01000000) != 0);
8030 }
8041 @java.lang.Override
8042 public int getSolutionPoolSize() {
8043 return solutionPoolSize_;
8044 }
8045
8046 public static final int USE_RINS_LNS_FIELD_NUMBER = 129;
8047 private boolean useRinsLns_ = true;
8056 @java.lang.Override
8057 public boolean hasUseRinsLns() {
8058 return ((bitField5_ & 0x02000000) != 0);
8059 }
8068 @java.lang.Override
8069 public boolean getUseRinsLns() {
8070 return useRinsLns_;
8071 }
8072
8073 public static final int USE_FEASIBILITY_PUMP_FIELD_NUMBER = 164;
8074 private boolean useFeasibilityPump_ = true;
8083 @java.lang.Override
8084 public boolean hasUseFeasibilityPump() {
8085 return ((bitField5_ & 0x04000000) != 0);
8086 }
8095 @java.lang.Override
8096 public boolean getUseFeasibilityPump() {
8097 return useFeasibilityPump_;
8098 }
8099
8100 public static final int USE_LB_RELAX_LNS_FIELD_NUMBER = 255;
8101 private boolean useLbRelaxLns_ = false;
8112 @java.lang.Override
8113 public boolean hasUseLbRelaxLns() {
8114 return ((bitField5_ & 0x08000000) != 0);
8115 }
8126 @java.lang.Override
8127 public boolean getUseLbRelaxLns() {
8128 return useLbRelaxLns_;
8129 }
8130
8131 public static final int FP_ROUNDING_FIELD_NUMBER = 165;
8132 private int fpRounding_ = 2;
8137 @java.lang.Override public boolean hasFpRounding() {
8138 return ((bitField5_ & 0x10000000) != 0);
8139 }
8145 com.google.ortools.sat.SatParameters.FPRoundingMethod result = com.google.ortools.sat.SatParameters.FPRoundingMethod.forNumber(fpRounding_);
8146 return result == null ? com.google.ortools.sat.SatParameters.FPRoundingMethod.PROPAGATION_ASSISTED : result;
8147 }
8148
8149 public static final int DIVERSIFY_LNS_PARAMS_FIELD_NUMBER = 137;
8150 private boolean diversifyLnsParams_ = false;
8159 @java.lang.Override
8160 public boolean hasDiversifyLnsParams() {
8161 return ((bitField5_ & 0x20000000) != 0);
8162 }
8171 @java.lang.Override
8172 public boolean getDiversifyLnsParams() {
8173 return diversifyLnsParams_;
8174 }
8175
8176 public static final int RANDOMIZE_SEARCH_FIELD_NUMBER = 103;
8177 private boolean randomizeSearch_ = false;
8186 @java.lang.Override
8187 public boolean hasRandomizeSearch() {
8188 return ((bitField5_ & 0x40000000) != 0);
8189 }
8198 @java.lang.Override
8199 public boolean getRandomizeSearch() {
8200 return randomizeSearch_;
8201 }
8202
8203 public static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER = 104;
8204 private long searchRandomizationTolerance_ = 0L;
8219 @java.lang.Override
8221 return ((bitField5_ & 0x80000000) != 0);
8222 }
8237 @java.lang.Override
8239 return searchRandomizationTolerance_;
8240 }
8241
8242 public static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER = 108;
8243 private boolean useOptionalVariables_ = false;
8257 @java.lang.Override
8258 public boolean hasUseOptionalVariables() {
8259 return ((bitField6_ & 0x00000001) != 0);
8260 }
8274 @java.lang.Override
8275 public boolean getUseOptionalVariables() {
8276 return useOptionalVariables_;
8277 }
8278
8279 public static final int USE_EXACT_LP_REASON_FIELD_NUMBER = 109;
8280 private boolean useExactLpReason_ = true;
8292 @java.lang.Override
8293 public boolean hasUseExactLpReason() {
8294 return ((bitField6_ & 0x00000002) != 0);
8295 }
8307 @java.lang.Override
8308 public boolean getUseExactLpReason() {
8309 return useExactLpReason_;
8310 }
8311
8312 public static final int USE_BRANCHING_IN_LP_FIELD_NUMBER = 139;
8313 private boolean useBranchingInLp_ = false;
8324 @java.lang.Override
8325 public boolean hasUseBranchingInLp() {
8326 return ((bitField6_ & 0x00000004) != 0);
8327 }
8338 @java.lang.Override
8339 public boolean getUseBranchingInLp() {
8340 return useBranchingInLp_;
8341 }
8342
8343 public static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER = 133;
8344 private boolean useCombinedNoOverlap_ = false;
8355 @java.lang.Override
8356 public boolean hasUseCombinedNoOverlap() {
8357 return ((bitField6_ & 0x00000008) != 0);
8358 }
8369 @java.lang.Override
8370 public boolean getUseCombinedNoOverlap() {
8371 return useCombinedNoOverlap_;
8372 }
8373
8374 public static final int CATCH_SIGINT_SIGNAL_FIELD_NUMBER = 135;
8375 private boolean catchSigintSignal_ = true;
8386 @java.lang.Override
8387 public boolean hasCatchSigintSignal() {
8388 return ((bitField6_ & 0x00000010) != 0);
8389 }
8400 @java.lang.Override
8401 public boolean getCatchSigintSignal() {
8402 return catchSigintSignal_;
8403 }
8404
8405 public static final int USE_IMPLIED_BOUNDS_FIELD_NUMBER = 144;
8406 private boolean useImpliedBounds_ = true;
8417 @java.lang.Override
8418 public boolean hasUseImpliedBounds() {
8419 return ((bitField6_ & 0x00000020) != 0);
8420 }
8431 @java.lang.Override
8432 public boolean getUseImpliedBounds() {
8433 return useImpliedBounds_;
8434 }
8435
8436 public static final int POLISH_LP_SOLUTION_FIELD_NUMBER = 175;
8437 private boolean polishLpSolution_ = false;
8449 @java.lang.Override
8450 public boolean hasPolishLpSolution() {
8451 return ((bitField6_ & 0x00000040) != 0);
8452 }
8464 @java.lang.Override
8465 public boolean getPolishLpSolution() {
8466 return polishLpSolution_;
8467 }
8468
8469 public static final int CONVERT_INTERVALS_FIELD_NUMBER = 177;
8470 private boolean convertIntervals_ = true;
8481 @java.lang.Override
8482 public boolean hasConvertIntervals() {
8483 return ((bitField6_ & 0x00000080) != 0);
8484 }
8495 @java.lang.Override
8496 public boolean getConvertIntervals() {
8497 return convertIntervals_;
8498 }
8499
8500 public static final int SYMMETRY_LEVEL_FIELD_NUMBER = 183;
8501 private int symmetryLevel_ = 2;
8513 @java.lang.Override
8514 public boolean hasSymmetryLevel() {
8515 return ((bitField6_ & 0x00000100) != 0);
8516 }
8528 @java.lang.Override
8529 public int getSymmetryLevel() {
8530 return symmetryLevel_;
8531 }
8532
8533 public static final int NEW_LINEAR_PROPAGATION_FIELD_NUMBER = 224;
8534 private boolean newLinearPropagation_ = false;
8543 @java.lang.Override
8544 public boolean hasNewLinearPropagation() {
8545 return ((bitField6_ & 0x00000200) != 0);
8546 }
8555 @java.lang.Override
8556 public boolean getNewLinearPropagation() {
8557 return newLinearPropagation_;
8558 }
8559
8560 public static final int LINEAR_SPLIT_SIZE_FIELD_NUMBER = 256;
8561 private int linearSplitSize_ = 100;
8572 @java.lang.Override
8573 public boolean hasLinearSplitSize() {
8574 return ((bitField6_ & 0x00000400) != 0);
8575 }
8586 @java.lang.Override
8587 public int getLinearSplitSize() {
8588 return linearSplitSize_;
8589 }
8590
8591 public static final int MIP_MAX_BOUND_FIELD_NUMBER = 124;
8592 private double mipMaxBound_ = 10000000D;
8603 @java.lang.Override
8604 public boolean hasMipMaxBound() {
8605 return ((bitField6_ & 0x00000800) != 0);
8606 }
8617 @java.lang.Override
8618 public double getMipMaxBound() {
8619 return mipMaxBound_;
8620 }
8621
8622 public static final int MIP_VAR_SCALING_FIELD_NUMBER = 125;
8623 private double mipVarScaling_ = 1D;
8634 @java.lang.Override
8635 public boolean hasMipVarScaling() {
8636 return ((bitField6_ & 0x00001000) != 0);
8637 }
8648 @java.lang.Override
8649 public double getMipVarScaling() {
8650 return mipVarScaling_;
8651 }
8652
8653 public static final int MIP_SCALE_LARGE_DOMAIN_FIELD_NUMBER = 225;
8654 private boolean mipScaleLargeDomain_ = false;
8665 @java.lang.Override
8666 public boolean hasMipScaleLargeDomain() {
8667 return ((bitField6_ & 0x00002000) != 0);
8668 }
8679 @java.lang.Override
8680 public boolean getMipScaleLargeDomain() {
8681 return mipScaleLargeDomain_;
8682 }
8683
8685 private boolean mipAutomaticallyScaleVariables_ = true;
8698 @java.lang.Override
8700 return ((bitField6_ & 0x00004000) != 0);
8701 }
8714 @java.lang.Override
8716 return mipAutomaticallyScaleVariables_;
8717 }
8718
8719 public static final int ONLY_SOLVE_IP_FIELD_NUMBER = 222;
8720 private boolean onlySolveIp_ = false;
8740 @java.lang.Override
8741 public boolean hasOnlySolveIp() {
8742 return ((bitField6_ & 0x00008000) != 0);
8743 }
8763 @java.lang.Override
8764 public boolean getOnlySolveIp() {
8765 return onlySolveIp_;
8766 }
8767
8768 public static final int MIP_WANTED_PRECISION_FIELD_NUMBER = 126;
8769 private double mipWantedPrecision_ = 1e-06D;
8794 @java.lang.Override
8795 public boolean hasMipWantedPrecision() {
8796 return ((bitField6_ & 0x00010000) != 0);
8797 }
8822 @java.lang.Override
8823 public double getMipWantedPrecision() {
8824 return mipWantedPrecision_;
8825 }
8826
8827 public static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER = 127;
8828 private int mipMaxActivityExponent_ = 53;
8844 @java.lang.Override
8845 public boolean hasMipMaxActivityExponent() {
8846 return ((bitField6_ & 0x00020000) != 0);
8847 }
8863 @java.lang.Override
8865 return mipMaxActivityExponent_;
8866 }
8867
8868 public static final int MIP_CHECK_PRECISION_FIELD_NUMBER = 128;
8869 private double mipCheckPrecision_ = 0.0001D;
8880 @java.lang.Override
8881 public boolean hasMipCheckPrecision() {
8882 return ((bitField6_ & 0x00040000) != 0);
8883 }
8894 @java.lang.Override
8895 public double getMipCheckPrecision() {
8896 return mipCheckPrecision_;
8897 }
8898
8900 private boolean mipComputeTrueObjectiveBound_ = true;
8913 @java.lang.Override
8915 return ((bitField6_ & 0x00080000) != 0);
8916 }
8929 @java.lang.Override
8931 return mipComputeTrueObjectiveBound_;
8932 }
8933
8934 public static final int MIP_MAX_VALID_MAGNITUDE_FIELD_NUMBER = 199;
8935 private double mipMaxValidMagnitude_ = 1e+30D;
8948 @java.lang.Override
8949 public boolean hasMipMaxValidMagnitude() {
8950 return ((bitField6_ & 0x00100000) != 0);
8951 }
8964 @java.lang.Override
8965 public double getMipMaxValidMagnitude() {
8966 return mipMaxValidMagnitude_;
8967 }
8968
8969 public static final int MIP_DROP_TOLERANCE_FIELD_NUMBER = 232;
8970 private double mipDropTolerance_ = 1e-16D;
8980 @java.lang.Override
8981 public boolean hasMipDropTolerance() {
8982 return ((bitField6_ & 0x00200000) != 0);
8983 }
8993 @java.lang.Override
8994 public double getMipDropTolerance() {
8995 return mipDropTolerance_;
8996 }
8997
8998 private byte memoizedIsInitialized = -1;
8999 @java.lang.Override
9000 public final boolean isInitialized() {
9001 byte isInitialized = memoizedIsInitialized;
9002 if (isInitialized == 1) return true;
9003 if (isInitialized == 0) return false;
9004
9005 memoizedIsInitialized = 1;
9006 return true;
9007 }
9008
9009 @java.lang.Override
9010 public void writeTo(com.google.protobuf.CodedOutputStream output)
9011 throws java.io.IOException {
9012 if (((bitField0_ & 0x00000002) != 0)) {
9013 output.writeEnum(1, preferredVariableOrder_);
9014 }
9015 if (((bitField0_ & 0x00000004) != 0)) {
9016 output.writeEnum(2, initialPolarity_);
9017 }
9018 if (((bitField0_ & 0x00000400) != 0)) {
9019 output.writeEnum(4, minimizationAlgorithm_);
9020 }
9021 if (((bitField0_ & 0x00002000) != 0)) {
9022 output.writeInt32(11, clauseCleanupPeriod_);
9023 }
9024 if (((bitField0_ & 0x00004000) != 0)) {
9025 output.writeInt32(13, clauseCleanupTarget_);
9026 }
9027 if (((bitField0_ & 0x00800000) != 0)) {
9028 output.writeDouble(15, variableActivityDecay_);
9029 }
9030 if (((bitField0_ & 0x01000000) != 0)) {
9031 output.writeDouble(16, maxVariableActivityValue_);
9032 }
9033 if (((bitField0_ & 0x10000000) != 0)) {
9034 output.writeDouble(17, clauseActivityDecay_);
9035 }
9036 if (((bitField0_ & 0x20000000) != 0)) {
9037 output.writeDouble(18, maxClauseActivityValue_);
9038 }
9039 if (((bitField0_ & 0x02000000) != 0)) {
9040 output.writeDouble(22, glucoseMaxDecay_);
9041 }
9042 if (((bitField0_ & 0x04000000) != 0)) {
9043 output.writeDouble(23, glucoseDecayIncrement_);
9044 }
9045 if (((bitField0_ & 0x08000000) != 0)) {
9046 output.writeInt32(24, glucoseDecayIncrementPeriod_);
9047 }
9048 if (((bitField0_ & 0x80000000) != 0)) {
9049 output.writeInt32(30, restartPeriod_);
9050 }
9051 if (((bitField1_ & 0x00004000) != 0)) {
9052 output.writeInt32(31, randomSeed_);
9053 }
9054 if (((bitField0_ & 0x00000040) != 0)) {
9055 output.writeDouble(32, randomBranchesRatio_);
9056 }
9057 if (((bitField0_ & 0x00000800) != 0)) {
9058 output.writeEnum(34, binaryMinimizationAlgorithm_);
9059 }
9060 if (((bitField3_ & 0x00000002) != 0)) {
9061 output.writeBool(35, useOptimizationHints_);
9062 }
9063 if (((bitField1_ & 0x00000100) != 0)) {
9064 output.writeDouble(36, maxTimeInSeconds_);
9065 }
9066 if (((bitField1_ & 0x00000400) != 0)) {
9067 output.writeInt64(37, maxNumberOfConflicts_);
9068 }
9069 if (((bitField1_ & 0x00000800) != 0)) {
9070 output.writeInt64(40, maxMemoryInMb_);
9071 }
9072 if (((bitField1_ & 0x00040000) != 0)) {
9073 output.writeBool(41, logSearchProgress_);
9074 }
9075 if (((bitField1_ & 0x02000000) != 0)) {
9076 output.writeBool(43, usePbResolution_);
9077 }
9078 if (((bitField0_ & 0x00000008) != 0)) {
9079 output.writeBool(44, usePhaseSaving_);
9080 }
9081 if (((bitField0_ & 0x00000020) != 0)) {
9082 output.writeDouble(45, randomPolarityRatio_);
9083 }
9084 if (((bitField0_ & 0x00080000) != 0)) {
9085 output.writeInt32(46, pbCleanupIncrement_);
9086 }
9087 if (((bitField0_ & 0x00100000) != 0)) {
9088 output.writeDouble(47, pbCleanupRatio_);
9089 }
9090 if (((bitField1_ & 0x04000000) != 0)) {
9091 output.writeBool(48, minimizeReductionDuringPbResolution_);
9092 }
9093 if (((bitField1_ & 0x08000000) != 0)) {
9094 output.writeBool(49, countAssumptionLevelsInLbd_);
9095 }
9096 if (((bitField3_ & 0x00000004) != 0)) {
9097 output.writeBool(50, minimizeCore_);
9098 }
9099 if (((bitField3_ & 0x00000020) != 0)) {
9100 output.writeEnum(51, maxSatAssumptionOrder_);
9101 }
9102 if (((bitField3_ & 0x00000040) != 0)) {
9103 output.writeBool(52, maxSatReverseAssumptionOrder_);
9104 }
9105 if (((bitField3_ & 0x00000080) != 0)) {
9106 output.writeEnum(53, maxSatStratification_);
9107 }
9108 if (((bitField1_ & 0x10000000) != 0)) {
9109 output.writeInt32(54, presolveBveThreshold_);
9110 }
9111 if (((bitField1_ & 0x20000000) != 0)) {
9112 output.writeInt32(55, presolveBveClauseWeight_);
9113 }
9114 if (((bitField0_ & 0x00001000) != 0)) {
9115 output.writeBool(56, subsumptionDuringConflictAnalysis_);
9116 }
9117 if (((bitField1_ & 0x80000000) != 0)) {
9118 output.writeDouble(57, presolveProbingDeterministicTimeLimit_);
9119 }
9120 if (((bitField0_ & 0x00010000) != 0)) {
9121 output.writeEnum(58, clauseCleanupProtection_);
9122 }
9123 if (((bitField0_ & 0x00020000) != 0)) {
9124 output.writeInt32(59, clauseCleanupLbdBound_);
9125 }
9126 if (((bitField0_ & 0x00040000) != 0)) {
9127 output.writeEnum(60, clauseCleanupOrdering_);
9128 }
9129 for (int i = 0; i < restartAlgorithms_.size(); i++) {
9130 output.writeEnum(61, restartAlgorithms_.get(i));
9131 }
9132 if (((bitField1_ & 0x00000001) != 0)) {
9133 output.writeInt32(62, restartRunningWindowSize_);
9134 }
9135 if (((bitField1_ & 0x00000002) != 0)) {
9136 output.writeDouble(63, restartDlAverageRatio_);
9137 }
9138 if (((bitField1_ & 0x00000008) != 0)) {
9139 output.writeBool(64, useBlockingRestart_);
9140 }
9141 if (((bitField1_ & 0x00000010) != 0)) {
9142 output.writeInt32(65, blockingRestartWindowSize_);
9143 }
9144 if (((bitField1_ & 0x00000020) != 0)) {
9145 output.writeDouble(66, blockingRestartMultiplier_);
9146 }
9147 if (((bitField1_ & 0x00000200) != 0)) {
9148 output.writeDouble(67, maxDeterministicTime_);
9149 }
9150 if (((bitField1_ & 0x00000040) != 0)) {
9151 output.writeInt32(68, numConflictsBeforeStrategyChanges_);
9152 }
9153 if (((bitField1_ & 0x00000080) != 0)) {
9154 output.writeDouble(69, strategyChangeIncreaseRatio_);
9155 }
9156 if (((bitField0_ & 0x40000000) != 0)) {
9157 com.google.protobuf.GeneratedMessageV3.writeString(output, 70, defaultRestartAlgorithms_);
9158 }
9159 if (((bitField1_ & 0x00000004) != 0)) {
9160 output.writeDouble(71, restartLbdAverageRatio_);
9161 }
9162 if (((bitField2_ & 0x00000002) != 0)) {
9163 output.writeBool(72, presolveUseBva_);
9164 }
9165 if (((bitField2_ & 0x00000004) != 0)) {
9166 output.writeInt32(73, presolveBvaThreshold_);
9167 }
9168 if (((bitField3_ & 0x00000200) != 0)) {
9169 output.writeBool(74, usePrecedencesInDisjunctiveConstraint_);
9170 }
9171 if (((bitField0_ & 0x00000080) != 0)) {
9172 output.writeBool(75, useErwaHeuristic_);
9173 }
9174 if (((bitField0_ & 0x00000100) != 0)) {
9175 output.writeDouble(76, initialVariablesActivity_);
9176 }
9177 if (((bitField0_ & 0x00000200) != 0)) {
9178 output.writeBool(77, alsoBumpVariablesInConflictReasons_);
9179 }
9180 if (((bitField3_ & 0x00001000) != 0)) {
9181 output.writeBool(78, useOverloadCheckerInCumulative_);
9182 }
9183 if (((bitField3_ & 0x00002000) != 0)) {
9184 output.writeBool(79, useTimetableEdgeFindingInCumulative_);
9185 }
9186 if (((bitField3_ & 0x00010000) != 0)) {
9187 output.writeBool(80, useDisjunctiveConstraintInCumulative_);
9188 }
9189 if (((bitField4_ & 0x00001000) != 0)) {
9190 output.writeEnum(82, searchBranching_);
9191 }
9192 if (((bitField4_ & 0x10000000) != 0)) {
9193 output.writeBool(83, optimizeWithCore_);
9194 }
9195 if (((bitField3_ & 0x00000008) != 0)) {
9196 output.writeBool(84, findMultipleCores_);
9197 }
9198 if (((bitField4_ & 0x80000000) != 0)) {
9199 output.writeBool(85, optimizeWithMaxHs_);
9200 }
9201 if (((bitField2_ & 0x00000010) != 0)) {
9202 output.writeBool(86, cpModelPresolve_);
9203 }
9204 if (((bitField5_ & 0x00004000) != 0)) {
9205 output.writeBool(87, enumerateAllSolutions_);
9206 }
9207 if (((bitField2_ & 0x00000001) != 0)) {
9208 output.writeBool(88, presolveBlockedClause_);
9209 }
9210 if (((bitField3_ & 0x00000010) != 0)) {
9211 output.writeBool(89, coverOptimization_);
9212 }
9213 if (((bitField3_ & 0x00200000) != 0)) {
9214 output.writeInt32(90, linearizationLevel_);
9215 }
9216 if (((bitField3_ & 0x01000000) != 0)) {
9217 output.writeInt32(91, maxNumCuts_);
9218 }
9219 if (((bitField3_ & 0x04000000) != 0)) {
9220 output.writeBool(92, onlyAddCutsAtLevelZero_);
9221 }
9222 if (((bitField2_ & 0x00000040) != 0)) {
9223 output.writeBool(93, cpModelUseSatPresolve_);
9224 }
9225 if (((bitField4_ & 0x00010000) != 0)) {
9226 output.writeBool(94, exploitIntegerLpSolution_);
9227 }
9228 if (((bitField5_ & 0x00080000) != 0)) {
9229 output.writeBool(95, autoDetectGreaterThanAtLeastOneOf_);
9230 }
9231 if (((bitField0_ & 0x00200000) != 0)) {
9232 output.writeInt32(96, minimizeWithPropagationRestartPeriod_);
9233 }
9234 if (((bitField0_ & 0x00400000) != 0)) {
9235 output.writeInt32(97, minimizeWithPropagationNumDecisions_);
9236 }
9237 if (((bitField5_ & 0x00100000) != 0)) {
9238 output.writeBool(98, stopAfterFirstSolution_);
9239 }
9240 if (((bitField4_ & 0x40000000) != 0)) {
9241 output.writeInt32(99, binarySearchNumConflicts_);
9242 }
9243 if (((bitField2_ & 0x00800000) != 0)) {
9244 output.writeInt32(100, numSearchWorkers_);
9245 }
9246 if (((bitField5_ & 0x00800000) != 0)) {
9247 output.writeBool(101, useLnsOnly_);
9248 }
9249 if (((bitField5_ & 0x40000000) != 0)) {
9250 output.writeBool(103, randomizeSearch_);
9251 }
9252 if (((bitField5_ & 0x80000000) != 0)) {
9253 output.writeInt64(104, searchRandomizationTolerance_);
9254 }
9255 if (((bitField5_ & 0x00040000) != 0)) {
9256 output.writeBool(106, instantiateAllVariables_);
9257 }
9258 if (((bitField3_ & 0x00400000) != 0)) {
9259 output.writeInt32(107, booleanEncodingLevel_);
9260 }
9261 if (((bitField6_ & 0x00000001) != 0)) {
9262 output.writeBool(108, useOptionalVariables_);
9263 }
9264 if (((bitField6_ & 0x00000002) != 0)) {
9265 output.writeBool(109, useExactLpReason_);
9266 }
9267 if (((bitField2_ & 0x00000020) != 0)) {
9268 output.writeInt32(110, cpModelProbingLevel_);
9269 }
9270 if (((bitField4_ & 0x00000008) != 0)) {
9271 output.writeBool(112, addLpConstraintsLazily_);
9272 }
9273 if (((bitField2_ & 0x08000000) != 0)) {
9274 output.writeBool(113, shareObjectiveBounds_);
9275 }
9276 if (((bitField2_ & 0x10000000) != 0)) {
9277 output.writeBool(114, shareLevelZeroBounds_);
9278 }
9279 if (((bitField4_ & 0x00000020) != 0)) {
9280 output.writeDouble(115, minOrthogonalityForLpConstraints_);
9281 }
9282 if (((bitField4_ & 0x00020000) != 0)) {
9283 output.writeBool(116, exploitAllLpSolution_);
9284 }
9285 if (((bitField3_ & 0x10000000) != 0)) {
9286 output.writeBool(117, addCgCuts_);
9287 }
9288 if (((bitField4_ & 0x00000004) != 0)) {
9289 output.writeInt32(119, maxIntegerRoundingScaling_);
9290 }
9291 if (((bitField3_ & 0x20000000) != 0)) {
9292 output.writeBool(120, addMirCuts_);
9293 }
9294 if (((bitField4_ & 0x00000080) != 0)) {
9295 output.writeInt32(121, maxConsecutiveInactiveCount_);
9296 }
9297 if (((bitField4_ & 0x00000800) != 0)) {
9298 output.writeInt32(122, newConstraintsBatchSize_);
9299 }
9300 if (((bitField4_ & 0x08000000) != 0)) {
9301 output.writeInt64(123, pseudoCostReliabilityThreshold_);
9302 }
9303 if (((bitField6_ & 0x00000800) != 0)) {
9304 output.writeDouble(124, mipMaxBound_);
9305 }
9306 if (((bitField6_ & 0x00001000) != 0)) {
9307 output.writeDouble(125, mipVarScaling_);
9308 }
9309 if (((bitField6_ & 0x00010000) != 0)) {
9310 output.writeDouble(126, mipWantedPrecision_);
9311 }
9312 if (((bitField6_ & 0x00020000) != 0)) {
9313 output.writeInt32(127, mipMaxActivityExponent_);
9314 }
9315 if (((bitField6_ & 0x00040000) != 0)) {
9316 output.writeDouble(128, mipCheckPrecision_);
9317 }
9318 if (((bitField5_ & 0x02000000) != 0)) {
9319 output.writeBool(129, useRinsLns_);
9320 }
9321 if (((bitField4_ & 0x00040000) != 0)) {
9322 output.writeBool(130, exploitBestSolution_);
9323 }
9324 if (((bitField4_ & 0x00100000) != 0)) {
9325 output.writeBool(131, exploitObjective_);
9326 }
9327 if (((bitField5_ & 0x00010000) != 0)) {
9328 output.writeBool(132, fillTightenedDomainsInResponse_);
9329 }
9330 if (((bitField6_ & 0x00000008) != 0)) {
9331 output.writeBool(133, useCombinedNoOverlap_);
9332 }
9333 if (((bitField2_ & 0x04000000) != 0)) {
9334 output.writeInt32(134, interleaveBatchSize_);
9335 }
9336 if (((bitField6_ & 0x00000010) != 0)) {
9337 output.writeBool(135, catchSigintSignal_);
9338 }
9339 if (((bitField2_ & 0x02000000) != 0)) {
9340 output.writeBool(136, interleaveSearch_);
9341 }
9342 if (((bitField5_ & 0x20000000) != 0)) {
9343 output.writeBool(137, diversifyLnsParams_);
9344 }
9345 if (((bitField2_ & 0x00000008) != 0)) {
9346 output.writeInt32(138, maxPresolveIterations_);
9347 }
9348 if (((bitField6_ & 0x00000004) != 0)) {
9349 output.writeBool(139, useBranchingInLp_);
9350 }
9351 if (((bitField4_ & 0x00200000) != 0)) {
9352 output.writeInt64(142, probingPeriodAtRoot_);
9353 }
9354 if (((bitField6_ & 0x00000020) != 0)) {
9355 output.writeBool(144, useImpliedBounds_);
9356 }
9357 if (((bitField2_ & 0x00004000) != 0)) {
9358 output.writeDouble(145, mergeNoOverlapWorkLimit_);
9359 }
9360 if (((bitField2_ & 0x00008000) != 0)) {
9361 output.writeDouble(146, mergeAtMostOneWorkLimit_);
9362 }
9363 if (((bitField2_ & 0x00010000) != 0)) {
9364 output.writeInt32(147, presolveSubstitutionLevel_);
9365 }
9366 if (((bitField4_ & 0x00000001) != 0)) {
9367 output.writeInt32(148, maxAllDiffCutSize_);
9368 }
9369 if (((bitField5_ & 0x00200000) != 0)) {
9370 output.writeBool(149, stopAfterPresolve_);
9371 }
9372 if (((bitField2_ & 0x80000000) != 0)) {
9373 output.writeInt32(151, debugMaxNumPresolveOperations_);
9374 }
9375 if (((bitField4_ & 0x00000002) != 0)) {
9376 output.writeBool(152, addLinMaxCuts_);
9377 }
9378 if (((bitField4_ & 0x00002000) != 0)) {
9379 output.writeInt32(153, hintConflictLimit_);
9380 }
9381 if (((bitField4_ & 0x00000040) != 0)) {
9382 output.writeInt32(154, maxCutRoundsAtLevelZero_);
9383 }
9384 if (((bitField4_ & 0x00000100) != 0)) {
9385 output.writeDouble(155, cutMaxActiveCountValue_);
9386 }
9387 if (((bitField4_ & 0x00000200) != 0)) {
9388 output.writeDouble(156, cutActiveCountDecay_);
9389 }
9390 if (((bitField4_ & 0x00000400) != 0)) {
9391 output.writeInt32(157, cutCleanupTarget_);
9392 }
9393 if (((bitField1_ & 0x00001000) != 0)) {
9394 output.writeDouble(159, absoluteGapLimit_);
9395 }
9396 if (((bitField1_ & 0x00002000) != 0)) {
9397 output.writeDouble(160, relativeGapLimit_);
9398 }
9399 if (((bitField4_ & 0x00080000) != 0)) {
9400 output.writeBool(161, exploitRelaxationSolution_);
9401 }
9402 if (((bitField2_ & 0x40000000) != 0)) {
9403 output.writeBool(162, debugPostsolveWithFullSolver_);
9404 }
9405 if (((bitField2_ & 0x00000080) != 0)) {
9406 output.writeBool(163, useSatInprocessing_);
9407 }
9408 if (((bitField5_ & 0x04000000) != 0)) {
9409 output.writeBool(164, useFeasibilityPump_);
9410 }
9411 if (((bitField5_ & 0x10000000) != 0)) {
9412 output.writeEnum(165, fpRounding_);
9413 }
9414 if (((bitField6_ & 0x00004000) != 0)) {
9415 output.writeBool(166, mipAutomaticallyScaleVariables_);
9416 }
9417 if (((bitField4_ & 0x00004000) != 0)) {
9418 output.writeBool(167, repairHint_);
9419 }
9420 if (((bitField0_ & 0x00000010) != 0)) {
9421 output.writeInt32(168, polarityRephaseIncrement_);
9422 }
9423 if (((bitField3_ & 0x40000000) != 0)) {
9424 output.writeBool(169, addZeroHalfCuts_);
9425 }
9426 if (((bitField2_ & 0x00000400) != 0)) {
9427 output.writeBool(170, expandAlldiffConstraints_);
9428 }
9429 if (((bitField0_ & 0x00000001) != 0)) {
9430 com.google.protobuf.GeneratedMessageV3.writeString(output, 171, name_);
9431 }
9432 if (((bitField3_ & 0x80000000) != 0)) {
9433 output.writeBool(172, addCliqueCuts_);
9434 }
9435 if (((bitField5_ & 0x00008000) != 0)) {
9436 output.writeBool(173, keepAllFeasibleSolutionsInPresolve_);
9437 }
9438 if (((bitField2_ & 0x00020000) != 0)) {
9439 output.writeBool(174, presolveExtractIntegerEnforcement_);
9440 }
9441 if (((bitField6_ & 0x00000040) != 0)) {
9442 output.writeBool(175, polishLpSolution_);
9443 }
9444 if (((bitField4_ & 0x00400000) != 0)) {
9445 output.writeBool(176, useProbingSearch_);
9446 }
9447 if (((bitField6_ & 0x00000080) != 0)) {
9448 output.writeBool(177, convertIntervals_);
9449 }
9450 if (((bitField1_ & 0x00008000) != 0)) {
9451 output.writeBool(178, permuteVariableRandomly_);
9452 }
9453 if (((bitField1_ & 0x00010000) != 0)) {
9454 output.writeBool(179, permutePresolveConstraintOrder_);
9455 }
9456 if (((bitField1_ & 0x00020000) != 0)) {
9457 output.writeBool(180, useAbslRandom_);
9458 }
9459 if (((bitField2_ & 0x00001000) != 0)) {
9460 output.writeBool(181, disableConstraintExpansion_);
9461 }
9462 if (((bitField2_ & 0x00000800) != 0)) {
9463 output.writeBool(182, expandReservoirConstraints_);
9464 }
9465 if (((bitField6_ & 0x00000100) != 0)) {
9466 output.writeInt32(183, symmetryLevel_);
9467 }
9468 if (((bitField1_ & 0x00400000) != 0)) {
9469 com.google.protobuf.GeneratedMessageV3.writeString(output, 185, logPrefix_);
9470 }
9471 if (((bitField1_ & 0x00800000) != 0)) {
9472 output.writeBool(186, logToStdout_);
9473 }
9474 if (((bitField1_ & 0x01000000) != 0)) {
9475 output.writeBool(187, logToResponse_);
9476 }
9477 if (((bitField4_ & 0x20000000) != 0)) {
9478 output.writeBool(188, optimizeWithLbTreeSearch_);
9479 }
9480 if (((bitField1_ & 0x00200000) != 0)) {
9481 output.writeBool(189, logSubsolverStatistics_);
9482 }
9483 if (((bitField0_ & 0x00008000) != 0)) {
9484 output.writeDouble(190, clauseCleanupRatio_);
9485 }
9486 if (((bitField3_ & 0x00800000) != 0)) {
9487 output.writeInt32(191, maxDomainSizeWhenEncodingEqNeqConstraints_);
9488 }
9489 if (((bitField4_ & 0x00008000) != 0)) {
9490 output.writeBool(192, fixVariablesToTheirHintedValue_);
9491 }
9492 if (((bitField5_ & 0x01000000) != 0)) {
9493 output.writeInt32(193, solutionPoolSize_);
9494 }
9495 if (((bitField5_ & 0x00020000) != 0)) {
9496 output.writeBool(194, fillAdditionalSolutionsInResponse_);
9497 }
9498 if (((bitField3_ & 0x00000001) != 0)) {
9499 output.writeBool(195, debugCrashOnBadHint_);
9500 }
9501 if (((bitField3_ & 0x02000000) != 0)) {
9502 output.writeInt32(196, cutLevel_);
9503 }
9504 if (((bitField3_ & 0x08000000) != 0)) {
9505 output.writeBool(197, addObjectiveCut_);
9506 }
9507 if (((bitField6_ & 0x00080000) != 0)) {
9508 output.writeBool(198, mipComputeTrueObjectiveBound_);
9509 }
9510 if (((bitField6_ & 0x00100000) != 0)) {
9511 output.writeDouble(199, mipMaxValidMagnitude_);
9512 }
9513 if (((bitField3_ & 0x00020000) != 0)) {
9514 output.writeBool(200, useTimetablingInNoOverlap2D_);
9515 }
9516 if (((bitField2_ & 0x00040000) != 0)) {
9517 output.writeInt64(201, presolveInclusionWorkLimit_);
9518 }
9519 if (((bitField2_ & 0x00080000) != 0)) {
9520 output.writeBool(202, ignoreNames_);
9521 }
9522 if (((bitField2_ & 0x20000000) != 0)) {
9523 output.writeBool(203, shareBinaryClauses_);
9524 }
9525 if (((bitField4_ & 0x00800000) != 0)) {
9526 output.writeBool(204, useShavingInProbingSearch_);
9527 }
9528 if (((bitField4_ & 0x01000000) != 0)) {
9529 output.writeDouble(205, shavingSearchDeterministicTime_);
9530 }
9531 if (((bitField2_ & 0x00400000) != 0)) {
9532 output.writeInt32(206, numWorkers_);
9533 }
9534 for (int i = 0; i < subsolvers_.size(); i++) {
9535 com.google.protobuf.GeneratedMessageV3.writeString(output, 207, subsolvers_.getRaw(i));
9536 }
9537 for (int i = 0; i < ignoreSubsolvers_.size(); i++) {
9538 com.google.protobuf.GeneratedMessageV3.writeString(output, 209, ignoreSubsolvers_.getRaw(i));
9539 }
9540 for (int i = 0; i < subsolverParams_.size(); i++) {
9541 output.writeMessage(210, subsolverParams_.get(i));
9542 }
9543 if (((bitField2_ & 0x01000000) != 0)) {
9544 output.writeInt32(211, minNumLnsWorkers_);
9545 }
9546 if (((bitField1_ & 0x00080000) != 0)) {
9547 output.writeDouble(212, logFrequencyInSeconds_);
9548 }
9549 if (((bitField3_ & 0x00040000) != 0)) {
9550 output.writeBool(213, useEnergeticReasoningInNoOverlap2D_);
9551 }
9552 if (((bitField3_ & 0x00100000) != 0)) {
9553 output.writeBool(214, useDualSchedulingHeuristics_);
9554 }
9555 if (((bitField3_ & 0x00004000) != 0)) {
9556 output.writeBool(215, useHardPrecedencesInCumulative_);
9557 }
9558 if (((bitField2_ & 0x00000100) != 0)) {
9559 output.writeBool(216, detectTableWithCost_);
9560 }
9561 if (((bitField2_ & 0x00000200) != 0)) {
9562 output.writeInt32(217, tableCompressionLevel_);
9563 }
9564 if (((bitField1_ & 0x00100000) != 0)) {
9565 output.writeDouble(218, modelReductionLogFrequencyInSeconds_);
9566 }
9567 for (int i = 0; i < extraSubsolvers_.size(); i++) {
9568 com.google.protobuf.GeneratedMessageV3.writeString(output, 219, extraSubsolvers_.getRaw(i));
9569 }
9570 if (((bitField3_ & 0x00008000) != 0)) {
9571 output.writeBool(220, exploitAllPrecedences_);
9572 }
9573 if (((bitField3_ & 0x00000100) != 0)) {
9574 output.writeDouble(221, propagationLoopDetectionFactor_);
9575 }
9576 if (((bitField6_ & 0x00008000) != 0)) {
9577 output.writeBool(222, onlySolveIp_);
9578 }
9579 if (((bitField2_ & 0x00002000) != 0)) {
9580 output.writeBool(223, encodeComplexLinearConstraintWithInteger_);
9581 }
9582 if (((bitField6_ & 0x00000200) != 0)) {
9583 output.writeBool(224, newLinearPropagation_);
9584 }
9585 if (((bitField6_ & 0x00002000) != 0)) {
9586 output.writeBool(225, mipScaleLargeDomain_);
9587 }
9588 if (((bitField1_ & 0x40000000) != 0)) {
9589 output.writeDouble(226, probingDeterministicTimeLimit_);
9590 }
9591 if (((bitField4_ & 0x00000010) != 0)) {
9592 output.writeInt32(227, rootLpIterations_);
9593 }
9594 if (((bitField4_ & 0x02000000) != 0)) {
9595 output.writeBool(228, useObjectiveLbSearch_);
9596 }
9597 if (((bitField3_ & 0x00000400) != 0)) {
9598 output.writeInt32(229, maxSizeToCreatePrecedenceLiteralsInDisjunctive_);
9599 }
9600 if (((bitField3_ & 0x00000800) != 0)) {
9601 output.writeBool(230, useStrongPropagationInDisjunctive_);
9602 }
9603 if (((bitField6_ & 0x00200000) != 0)) {
9604 output.writeDouble(232, mipDropTolerance_);
9605 }
9606 if (((bitField2_ & 0x00100000) != 0)) {
9607 output.writeBool(233, inferAllDiffs_);
9608 }
9609 if (((bitField2_ & 0x00200000) != 0)) {
9610 output.writeBool(234, findBigLinearOverlap_);
9611 }
9612 if (((bitField5_ & 0x00000200) != 0)) {
9613 output.writeInt32(235, sharedTreeNumWorkers_);
9614 }
9615 if (((bitField5_ & 0x00000400) != 0)) {
9616 output.writeBool(236, useSharedTreeSearch_);
9617 }
9618 if (((bitField5_ & 0x00000800) != 0)) {
9619 output.writeDouble(237, sharedTreeWorkerObjectiveSplitProbability_);
9620 }
9621 if (((bitField5_ & 0x00001000) != 0)) {
9622 output.writeInt32(238, sharedTreeMaxNodesPerWorker_);
9623 }
9624 if (((bitField5_ & 0x00002000) != 0)) {
9625 output.writeEnum(239, sharedTreeSplitStrategy_);
9626 }
9627 if (((bitField5_ & 0x00000001) != 0)) {
9628 output.writeBool(240, testFeasibilityJump_);
9629 }
9630 if (((bitField5_ & 0x00000008) != 0)) {
9631 output.writeDouble(242, feasibilityJumpDecay_);
9632 }
9633 if (((bitField5_ & 0x00000080) != 0)) {
9634 output.writeInt32(244, numViolationLs_);
9635 }
9636 if (((bitField5_ & 0x00000002) != 0)) {
9637 output.writeInt64(245, feasibilityJumpMaxNumValuesScanned_);
9638 }
9639 if (((bitField5_ & 0x00000004) != 0)) {
9640 output.writeBool(246, feasibilityJumpProtectLinearFeasibility_);
9641 }
9642 if (((bitField5_ & 0x00000010) != 0)) {
9643 output.writeDouble(247, feasibilityJumpVarRandomizationProbability_);
9644 }
9645 if (((bitField5_ & 0x00000020) != 0)) {
9646 output.writeDouble(248, feasibilityJumpVarPerburbationRangeRatio_);
9647 }
9648 if (((bitField5_ & 0x00000100) != 0)) {
9649 output.writeInt32(249, violationLsPerturbationPeriod_);
9650 }
9651 if (((bitField5_ & 0x00000040) != 0)) {
9652 output.writeBool(250, feasibilityJumpEnableRestarts_);
9653 }
9654 if (((bitField3_ & 0x00080000) != 0)) {
9655 output.writeBool(251, usePairwiseReasoningInNoOverlap2D_);
9656 }
9657 if (((bitField5_ & 0x00400000) != 0)) {
9658 output.writeBool(252, stopAfterRootPropagation_);
9659 }
9660 if (((bitField4_ & 0x04000000) != 0)) {
9661 output.writeBool(253, useObjectiveShavingSearch_);
9662 }
9663 if (((bitField5_ & 0x08000000) != 0)) {
9664 output.writeBool(255, useLbRelaxLns_);
9665 }
9666 if (((bitField6_ & 0x00000400) != 0)) {
9667 output.writeInt32(256, linearSplitSize_);
9668 }
9669 getUnknownFields().writeTo(output);
9670 }
9671
9672 @java.lang.Override
9673 public int getSerializedSize() {
9674 int size = memoizedSize;
9675 if (size != -1) return size;
9676
9677 size = 0;
9678 if (((bitField0_ & 0x00000002) != 0)) {
9679 size += com.google.protobuf.CodedOutputStream
9680 .computeEnumSize(1, preferredVariableOrder_);
9681 }
9682 if (((bitField0_ & 0x00000004) != 0)) {
9683 size += com.google.protobuf.CodedOutputStream
9684 .computeEnumSize(2, initialPolarity_);
9685 }
9686 if (((bitField0_ & 0x00000400) != 0)) {
9687 size += com.google.protobuf.CodedOutputStream
9688 .computeEnumSize(4, minimizationAlgorithm_);
9689 }
9690 if (((bitField0_ & 0x00002000) != 0)) {
9691 size += com.google.protobuf.CodedOutputStream
9692 .computeInt32Size(11, clauseCleanupPeriod_);
9693 }
9694 if (((bitField0_ & 0x00004000) != 0)) {
9695 size += com.google.protobuf.CodedOutputStream
9696 .computeInt32Size(13, clauseCleanupTarget_);
9697 }
9698 if (((bitField0_ & 0x00800000) != 0)) {
9699 size += com.google.protobuf.CodedOutputStream
9700 .computeDoubleSize(15, variableActivityDecay_);
9701 }
9702 if (((bitField0_ & 0x01000000) != 0)) {
9703 size += com.google.protobuf.CodedOutputStream
9704 .computeDoubleSize(16, maxVariableActivityValue_);
9705 }
9706 if (((bitField0_ & 0x10000000) != 0)) {
9707 size += com.google.protobuf.CodedOutputStream
9708 .computeDoubleSize(17, clauseActivityDecay_);
9709 }
9710 if (((bitField0_ & 0x20000000) != 0)) {
9711 size += com.google.protobuf.CodedOutputStream
9712 .computeDoubleSize(18, maxClauseActivityValue_);
9713 }
9714 if (((bitField0_ & 0x02000000) != 0)) {
9715 size += com.google.protobuf.CodedOutputStream
9716 .computeDoubleSize(22, glucoseMaxDecay_);
9717 }
9718 if (((bitField0_ & 0x04000000) != 0)) {
9719 size += com.google.protobuf.CodedOutputStream
9720 .computeDoubleSize(23, glucoseDecayIncrement_);
9721 }
9722 if (((bitField0_ & 0x08000000) != 0)) {
9723 size += com.google.protobuf.CodedOutputStream
9724 .computeInt32Size(24, glucoseDecayIncrementPeriod_);
9725 }
9726 if (((bitField0_ & 0x80000000) != 0)) {
9727 size += com.google.protobuf.CodedOutputStream
9728 .computeInt32Size(30, restartPeriod_);
9729 }
9730 if (((bitField1_ & 0x00004000) != 0)) {
9731 size += com.google.protobuf.CodedOutputStream
9732 .computeInt32Size(31, randomSeed_);
9733 }
9734 if (((bitField0_ & 0x00000040) != 0)) {
9735 size += com.google.protobuf.CodedOutputStream
9736 .computeDoubleSize(32, randomBranchesRatio_);
9737 }
9738 if (((bitField0_ & 0x00000800) != 0)) {
9739 size += com.google.protobuf.CodedOutputStream
9740 .computeEnumSize(34, binaryMinimizationAlgorithm_);
9741 }
9742 if (((bitField3_ & 0x00000002) != 0)) {
9743 size += com.google.protobuf.CodedOutputStream
9744 .computeBoolSize(35, useOptimizationHints_);
9745 }
9746 if (((bitField1_ & 0x00000100) != 0)) {
9747 size += com.google.protobuf.CodedOutputStream
9748 .computeDoubleSize(36, maxTimeInSeconds_);
9749 }
9750 if (((bitField1_ & 0x00000400) != 0)) {
9751 size += com.google.protobuf.CodedOutputStream
9752 .computeInt64Size(37, maxNumberOfConflicts_);
9753 }
9754 if (((bitField1_ & 0x00000800) != 0)) {
9755 size += com.google.protobuf.CodedOutputStream
9756 .computeInt64Size(40, maxMemoryInMb_);
9757 }
9758 if (((bitField1_ & 0x00040000) != 0)) {
9759 size += com.google.protobuf.CodedOutputStream
9760 .computeBoolSize(41, logSearchProgress_);
9761 }
9762 if (((bitField1_ & 0x02000000) != 0)) {
9763 size += com.google.protobuf.CodedOutputStream
9764 .computeBoolSize(43, usePbResolution_);
9765 }
9766 if (((bitField0_ & 0x00000008) != 0)) {
9767 size += com.google.protobuf.CodedOutputStream
9768 .computeBoolSize(44, usePhaseSaving_);
9769 }
9770 if (((bitField0_ & 0x00000020) != 0)) {
9771 size += com.google.protobuf.CodedOutputStream
9772 .computeDoubleSize(45, randomPolarityRatio_);
9773 }
9774 if (((bitField0_ & 0x00080000) != 0)) {
9775 size += com.google.protobuf.CodedOutputStream
9776 .computeInt32Size(46, pbCleanupIncrement_);
9777 }
9778 if (((bitField0_ & 0x00100000) != 0)) {
9779 size += com.google.protobuf.CodedOutputStream
9780 .computeDoubleSize(47, pbCleanupRatio_);
9781 }
9782 if (((bitField1_ & 0x04000000) != 0)) {
9783 size += com.google.protobuf.CodedOutputStream
9784 .computeBoolSize(48, minimizeReductionDuringPbResolution_);
9785 }
9786 if (((bitField1_ & 0x08000000) != 0)) {
9787 size += com.google.protobuf.CodedOutputStream
9788 .computeBoolSize(49, countAssumptionLevelsInLbd_);
9789 }
9790 if (((bitField3_ & 0x00000004) != 0)) {
9791 size += com.google.protobuf.CodedOutputStream
9792 .computeBoolSize(50, minimizeCore_);
9793 }
9794 if (((bitField3_ & 0x00000020) != 0)) {
9795 size += com.google.protobuf.CodedOutputStream
9796 .computeEnumSize(51, maxSatAssumptionOrder_);
9797 }
9798 if (((bitField3_ & 0x00000040) != 0)) {
9799 size += com.google.protobuf.CodedOutputStream
9800 .computeBoolSize(52, maxSatReverseAssumptionOrder_);
9801 }
9802 if (((bitField3_ & 0x00000080) != 0)) {
9803 size += com.google.protobuf.CodedOutputStream
9804 .computeEnumSize(53, maxSatStratification_);
9805 }
9806 if (((bitField1_ & 0x10000000) != 0)) {
9807 size += com.google.protobuf.CodedOutputStream
9808 .computeInt32Size(54, presolveBveThreshold_);
9809 }
9810 if (((bitField1_ & 0x20000000) != 0)) {
9811 size += com.google.protobuf.CodedOutputStream
9812 .computeInt32Size(55, presolveBveClauseWeight_);
9813 }
9814 if (((bitField0_ & 0x00001000) != 0)) {
9815 size += com.google.protobuf.CodedOutputStream
9816 .computeBoolSize(56, subsumptionDuringConflictAnalysis_);
9817 }
9818 if (((bitField1_ & 0x80000000) != 0)) {
9819 size += com.google.protobuf.CodedOutputStream
9820 .computeDoubleSize(57, presolveProbingDeterministicTimeLimit_);
9821 }
9822 if (((bitField0_ & 0x00010000) != 0)) {
9823 size += com.google.protobuf.CodedOutputStream
9824 .computeEnumSize(58, clauseCleanupProtection_);
9825 }
9826 if (((bitField0_ & 0x00020000) != 0)) {
9827 size += com.google.protobuf.CodedOutputStream
9828 .computeInt32Size(59, clauseCleanupLbdBound_);
9829 }
9830 if (((bitField0_ & 0x00040000) != 0)) {
9831 size += com.google.protobuf.CodedOutputStream
9832 .computeEnumSize(60, clauseCleanupOrdering_);
9833 }
9834 {
9835 int dataSize = 0;
9836 for (int i = 0; i < restartAlgorithms_.size(); i++) {
9837 dataSize += com.google.protobuf.CodedOutputStream
9838 .computeEnumSizeNoTag(restartAlgorithms_.get(i));
9839 }
9840 size += dataSize;
9841 size += 2 * restartAlgorithms_.size();
9842 }
9843 if (((bitField1_ & 0x00000001) != 0)) {
9844 size += com.google.protobuf.CodedOutputStream
9845 .computeInt32Size(62, restartRunningWindowSize_);
9846 }
9847 if (((bitField1_ & 0x00000002) != 0)) {
9848 size += com.google.protobuf.CodedOutputStream
9849 .computeDoubleSize(63, restartDlAverageRatio_);
9850 }
9851 if (((bitField1_ & 0x00000008) != 0)) {
9852 size += com.google.protobuf.CodedOutputStream
9853 .computeBoolSize(64, useBlockingRestart_);
9854 }
9855 if (((bitField1_ & 0x00000010) != 0)) {
9856 size += com.google.protobuf.CodedOutputStream
9857 .computeInt32Size(65, blockingRestartWindowSize_);
9858 }
9859 if (((bitField1_ & 0x00000020) != 0)) {
9860 size += com.google.protobuf.CodedOutputStream
9861 .computeDoubleSize(66, blockingRestartMultiplier_);
9862 }
9863 if (((bitField1_ & 0x00000200) != 0)) {
9864 size += com.google.protobuf.CodedOutputStream
9865 .computeDoubleSize(67, maxDeterministicTime_);
9866 }
9867 if (((bitField1_ & 0x00000040) != 0)) {
9868 size += com.google.protobuf.CodedOutputStream
9869 .computeInt32Size(68, numConflictsBeforeStrategyChanges_);
9870 }
9871 if (((bitField1_ & 0x00000080) != 0)) {
9872 size += com.google.protobuf.CodedOutputStream
9873 .computeDoubleSize(69, strategyChangeIncreaseRatio_);
9874 }
9875 if (((bitField0_ & 0x40000000) != 0)) {
9876 size += com.google.protobuf.GeneratedMessageV3.computeStringSize(70, defaultRestartAlgorithms_);
9877 }
9878 if (((bitField1_ & 0x00000004) != 0)) {
9879 size += com.google.protobuf.CodedOutputStream
9880 .computeDoubleSize(71, restartLbdAverageRatio_);
9881 }
9882 if (((bitField2_ & 0x00000002) != 0)) {
9883 size += com.google.protobuf.CodedOutputStream
9884 .computeBoolSize(72, presolveUseBva_);
9885 }
9886 if (((bitField2_ & 0x00000004) != 0)) {
9887 size += com.google.protobuf.CodedOutputStream
9888 .computeInt32Size(73, presolveBvaThreshold_);
9889 }
9890 if (((bitField3_ & 0x00000200) != 0)) {
9891 size += com.google.protobuf.CodedOutputStream
9892 .computeBoolSize(74, usePrecedencesInDisjunctiveConstraint_);
9893 }
9894 if (((bitField0_ & 0x00000080) != 0)) {
9895 size += com.google.protobuf.CodedOutputStream
9896 .computeBoolSize(75, useErwaHeuristic_);
9897 }
9898 if (((bitField0_ & 0x00000100) != 0)) {
9899 size += com.google.protobuf.CodedOutputStream
9900 .computeDoubleSize(76, initialVariablesActivity_);
9901 }
9902 if (((bitField0_ & 0x00000200) != 0)) {
9903 size += com.google.protobuf.CodedOutputStream
9904 .computeBoolSize(77, alsoBumpVariablesInConflictReasons_);
9905 }
9906 if (((bitField3_ & 0x00001000) != 0)) {
9907 size += com.google.protobuf.CodedOutputStream
9908 .computeBoolSize(78, useOverloadCheckerInCumulative_);
9909 }
9910 if (((bitField3_ & 0x00002000) != 0)) {
9911 size += com.google.protobuf.CodedOutputStream
9912 .computeBoolSize(79, useTimetableEdgeFindingInCumulative_);
9913 }
9914 if (((bitField3_ & 0x00010000) != 0)) {
9915 size += com.google.protobuf.CodedOutputStream
9916 .computeBoolSize(80, useDisjunctiveConstraintInCumulative_);
9917 }
9918 if (((bitField4_ & 0x00001000) != 0)) {
9919 size += com.google.protobuf.CodedOutputStream
9920 .computeEnumSize(82, searchBranching_);
9921 }
9922 if (((bitField4_ & 0x10000000) != 0)) {
9923 size += com.google.protobuf.CodedOutputStream
9924 .computeBoolSize(83, optimizeWithCore_);
9925 }
9926 if (((bitField3_ & 0x00000008) != 0)) {
9927 size += com.google.protobuf.CodedOutputStream
9928 .computeBoolSize(84, findMultipleCores_);
9929 }
9930 if (((bitField4_ & 0x80000000) != 0)) {
9931 size += com.google.protobuf.CodedOutputStream
9932 .computeBoolSize(85, optimizeWithMaxHs_);
9933 }
9934 if (((bitField2_ & 0x00000010) != 0)) {
9935 size += com.google.protobuf.CodedOutputStream
9936 .computeBoolSize(86, cpModelPresolve_);
9937 }
9938 if (((bitField5_ & 0x00004000) != 0)) {
9939 size += com.google.protobuf.CodedOutputStream
9940 .computeBoolSize(87, enumerateAllSolutions_);
9941 }
9942 if (((bitField2_ & 0x00000001) != 0)) {
9943 size += com.google.protobuf.CodedOutputStream
9944 .computeBoolSize(88, presolveBlockedClause_);
9945 }
9946 if (((bitField3_ & 0x00000010) != 0)) {
9947 size += com.google.protobuf.CodedOutputStream
9948 .computeBoolSize(89, coverOptimization_);
9949 }
9950 if (((bitField3_ & 0x00200000) != 0)) {
9951 size += com.google.protobuf.CodedOutputStream
9952 .computeInt32Size(90, linearizationLevel_);
9953 }
9954 if (((bitField3_ & 0x01000000) != 0)) {
9955 size += com.google.protobuf.CodedOutputStream
9956 .computeInt32Size(91, maxNumCuts_);
9957 }
9958 if (((bitField3_ & 0x04000000) != 0)) {
9959 size += com.google.protobuf.CodedOutputStream
9960 .computeBoolSize(92, onlyAddCutsAtLevelZero_);
9961 }
9962 if (((bitField2_ & 0x00000040) != 0)) {
9963 size += com.google.protobuf.CodedOutputStream
9964 .computeBoolSize(93, cpModelUseSatPresolve_);
9965 }
9966 if (((bitField4_ & 0x00010000) != 0)) {
9967 size += com.google.protobuf.CodedOutputStream
9968 .computeBoolSize(94, exploitIntegerLpSolution_);
9969 }
9970 if (((bitField5_ & 0x00080000) != 0)) {
9971 size += com.google.protobuf.CodedOutputStream
9972 .computeBoolSize(95, autoDetectGreaterThanAtLeastOneOf_);
9973 }
9974 if (((bitField0_ & 0x00200000) != 0)) {
9975 size += com.google.protobuf.CodedOutputStream
9976 .computeInt32Size(96, minimizeWithPropagationRestartPeriod_);
9977 }
9978 if (((bitField0_ & 0x00400000) != 0)) {
9979 size += com.google.protobuf.CodedOutputStream
9980 .computeInt32Size(97, minimizeWithPropagationNumDecisions_);
9981 }
9982 if (((bitField5_ & 0x00100000) != 0)) {
9983 size += com.google.protobuf.CodedOutputStream
9984 .computeBoolSize(98, stopAfterFirstSolution_);
9985 }
9986 if (((bitField4_ & 0x40000000) != 0)) {
9987 size += com.google.protobuf.CodedOutputStream
9988 .computeInt32Size(99, binarySearchNumConflicts_);
9989 }
9990 if (((bitField2_ & 0x00800000) != 0)) {
9991 size += com.google.protobuf.CodedOutputStream
9992 .computeInt32Size(100, numSearchWorkers_);
9993 }
9994 if (((bitField5_ & 0x00800000) != 0)) {
9995 size += com.google.protobuf.CodedOutputStream
9996 .computeBoolSize(101, useLnsOnly_);
9997 }
9998 if (((bitField5_ & 0x40000000) != 0)) {
9999 size += com.google.protobuf.CodedOutputStream
10000 .computeBoolSize(103, randomizeSearch_);
10001 }
10002 if (((bitField5_ & 0x80000000) != 0)) {
10003 size += com.google.protobuf.CodedOutputStream
10004 .computeInt64Size(104, searchRandomizationTolerance_);
10005 }
10006 if (((bitField5_ & 0x00040000) != 0)) {
10007 size += com.google.protobuf.CodedOutputStream
10008 .computeBoolSize(106, instantiateAllVariables_);
10009 }
10010 if (((bitField3_ & 0x00400000) != 0)) {
10011 size += com.google.protobuf.CodedOutputStream
10012 .computeInt32Size(107, booleanEncodingLevel_);
10013 }
10014 if (((bitField6_ & 0x00000001) != 0)) {
10015 size += com.google.protobuf.CodedOutputStream
10016 .computeBoolSize(108, useOptionalVariables_);
10017 }
10018 if (((bitField6_ & 0x00000002) != 0)) {
10019 size += com.google.protobuf.CodedOutputStream
10020 .computeBoolSize(109, useExactLpReason_);
10021 }
10022 if (((bitField2_ & 0x00000020) != 0)) {
10023 size += com.google.protobuf.CodedOutputStream
10024 .computeInt32Size(110, cpModelProbingLevel_);
10025 }
10026 if (((bitField4_ & 0x00000008) != 0)) {
10027 size += com.google.protobuf.CodedOutputStream
10028 .computeBoolSize(112, addLpConstraintsLazily_);
10029 }
10030 if (((bitField2_ & 0x08000000) != 0)) {
10031 size += com.google.protobuf.CodedOutputStream
10032 .computeBoolSize(113, shareObjectiveBounds_);
10033 }
10034 if (((bitField2_ & 0x10000000) != 0)) {
10035 size += com.google.protobuf.CodedOutputStream
10036 .computeBoolSize(114, shareLevelZeroBounds_);
10037 }
10038 if (((bitField4_ & 0x00000020) != 0)) {
10039 size += com.google.protobuf.CodedOutputStream
10040 .computeDoubleSize(115, minOrthogonalityForLpConstraints_);
10041 }
10042 if (((bitField4_ & 0x00020000) != 0)) {
10043 size += com.google.protobuf.CodedOutputStream
10044 .computeBoolSize(116, exploitAllLpSolution_);
10045 }
10046 if (((bitField3_ & 0x10000000) != 0)) {
10047 size += com.google.protobuf.CodedOutputStream
10048 .computeBoolSize(117, addCgCuts_);
10049 }
10050 if (((bitField4_ & 0x00000004) != 0)) {
10051 size += com.google.protobuf.CodedOutputStream
10052 .computeInt32Size(119, maxIntegerRoundingScaling_);
10053 }
10054 if (((bitField3_ & 0x20000000) != 0)) {
10055 size += com.google.protobuf.CodedOutputStream
10056 .computeBoolSize(120, addMirCuts_);
10057 }
10058 if (((bitField4_ & 0x00000080) != 0)) {
10059 size += com.google.protobuf.CodedOutputStream
10060 .computeInt32Size(121, maxConsecutiveInactiveCount_);
10061 }
10062 if (((bitField4_ & 0x00000800) != 0)) {
10063 size += com.google.protobuf.CodedOutputStream
10064 .computeInt32Size(122, newConstraintsBatchSize_);
10065 }
10066 if (((bitField4_ & 0x08000000) != 0)) {
10067 size += com.google.protobuf.CodedOutputStream
10068 .computeInt64Size(123, pseudoCostReliabilityThreshold_);
10069 }
10070 if (((bitField6_ & 0x00000800) != 0)) {
10071 size += com.google.protobuf.CodedOutputStream
10072 .computeDoubleSize(124, mipMaxBound_);
10073 }
10074 if (((bitField6_ & 0x00001000) != 0)) {
10075 size += com.google.protobuf.CodedOutputStream
10076 .computeDoubleSize(125, mipVarScaling_);
10077 }
10078 if (((bitField6_ & 0x00010000) != 0)) {
10079 size += com.google.protobuf.CodedOutputStream
10080 .computeDoubleSize(126, mipWantedPrecision_);
10081 }
10082 if (((bitField6_ & 0x00020000) != 0)) {
10083 size += com.google.protobuf.CodedOutputStream
10084 .computeInt32Size(127, mipMaxActivityExponent_);
10085 }
10086 if (((bitField6_ & 0x00040000) != 0)) {
10087 size += com.google.protobuf.CodedOutputStream
10088 .computeDoubleSize(128, mipCheckPrecision_);
10089 }
10090 if (((bitField5_ & 0x02000000) != 0)) {
10091 size += com.google.protobuf.CodedOutputStream
10092 .computeBoolSize(129, useRinsLns_);
10093 }
10094 if (((bitField4_ & 0x00040000) != 0)) {
10095 size += com.google.protobuf.CodedOutputStream
10096 .computeBoolSize(130, exploitBestSolution_);
10097 }
10098 if (((bitField4_ & 0x00100000) != 0)) {
10099 size += com.google.protobuf.CodedOutputStream
10100 .computeBoolSize(131, exploitObjective_);
10101 }
10102 if (((bitField5_ & 0x00010000) != 0)) {
10103 size += com.google.protobuf.CodedOutputStream
10104 .computeBoolSize(132, fillTightenedDomainsInResponse_);
10105 }
10106 if (((bitField6_ & 0x00000008) != 0)) {
10107 size += com.google.protobuf.CodedOutputStream
10108 .computeBoolSize(133, useCombinedNoOverlap_);
10109 }
10110 if (((bitField2_ & 0x04000000) != 0)) {
10111 size += com.google.protobuf.CodedOutputStream
10112 .computeInt32Size(134, interleaveBatchSize_);
10113 }
10114 if (((bitField6_ & 0x00000010) != 0)) {
10115 size += com.google.protobuf.CodedOutputStream
10116 .computeBoolSize(135, catchSigintSignal_);
10117 }
10118 if (((bitField2_ & 0x02000000) != 0)) {
10119 size += com.google.protobuf.CodedOutputStream
10120 .computeBoolSize(136, interleaveSearch_);
10121 }
10122 if (((bitField5_ & 0x20000000) != 0)) {
10123 size += com.google.protobuf.CodedOutputStream
10124 .computeBoolSize(137, diversifyLnsParams_);
10125 }
10126 if (((bitField2_ & 0x00000008) != 0)) {
10127 size += com.google.protobuf.CodedOutputStream
10128 .computeInt32Size(138, maxPresolveIterations_);
10129 }
10130 if (((bitField6_ & 0x00000004) != 0)) {
10131 size += com.google.protobuf.CodedOutputStream
10132 .computeBoolSize(139, useBranchingInLp_);
10133 }
10134 if (((bitField4_ & 0x00200000) != 0)) {
10135 size += com.google.protobuf.CodedOutputStream
10136 .computeInt64Size(142, probingPeriodAtRoot_);
10137 }
10138 if (((bitField6_ & 0x00000020) != 0)) {
10139 size += com.google.protobuf.CodedOutputStream
10140 .computeBoolSize(144, useImpliedBounds_);
10141 }
10142 if (((bitField2_ & 0x00004000) != 0)) {
10143 size += com.google.protobuf.CodedOutputStream
10144 .computeDoubleSize(145, mergeNoOverlapWorkLimit_);
10145 }
10146 if (((bitField2_ & 0x00008000) != 0)) {
10147 size += com.google.protobuf.CodedOutputStream
10148 .computeDoubleSize(146, mergeAtMostOneWorkLimit_);
10149 }
10150 if (((bitField2_ & 0x00010000) != 0)) {
10151 size += com.google.protobuf.CodedOutputStream
10152 .computeInt32Size(147, presolveSubstitutionLevel_);
10153 }
10154 if (((bitField4_ & 0x00000001) != 0)) {
10155 size += com.google.protobuf.CodedOutputStream
10156 .computeInt32Size(148, maxAllDiffCutSize_);
10157 }
10158 if (((bitField5_ & 0x00200000) != 0)) {
10159 size += com.google.protobuf.CodedOutputStream
10160 .computeBoolSize(149, stopAfterPresolve_);
10161 }
10162 if (((bitField2_ & 0x80000000) != 0)) {
10163 size += com.google.protobuf.CodedOutputStream
10164 .computeInt32Size(151, debugMaxNumPresolveOperations_);
10165 }
10166 if (((bitField4_ & 0x00000002) != 0)) {
10167 size += com.google.protobuf.CodedOutputStream
10168 .computeBoolSize(152, addLinMaxCuts_);
10169 }
10170 if (((bitField4_ & 0x00002000) != 0)) {
10171 size += com.google.protobuf.CodedOutputStream
10172 .computeInt32Size(153, hintConflictLimit_);
10173 }
10174 if (((bitField4_ & 0x00000040) != 0)) {
10175 size += com.google.protobuf.CodedOutputStream
10176 .computeInt32Size(154, maxCutRoundsAtLevelZero_);
10177 }
10178 if (((bitField4_ & 0x00000100) != 0)) {
10179 size += com.google.protobuf.CodedOutputStream
10180 .computeDoubleSize(155, cutMaxActiveCountValue_);
10181 }
10182 if (((bitField4_ & 0x00000200) != 0)) {
10183 size += com.google.protobuf.CodedOutputStream
10184 .computeDoubleSize(156, cutActiveCountDecay_);
10185 }
10186 if (((bitField4_ & 0x00000400) != 0)) {
10187 size += com.google.protobuf.CodedOutputStream
10188 .computeInt32Size(157, cutCleanupTarget_);
10189 }
10190 if (((bitField1_ & 0x00001000) != 0)) {
10191 size += com.google.protobuf.CodedOutputStream
10192 .computeDoubleSize(159, absoluteGapLimit_);
10193 }
10194 if (((bitField1_ & 0x00002000) != 0)) {
10195 size += com.google.protobuf.CodedOutputStream
10196 .computeDoubleSize(160, relativeGapLimit_);
10197 }
10198 if (((bitField4_ & 0x00080000) != 0)) {
10199 size += com.google.protobuf.CodedOutputStream
10200 .computeBoolSize(161, exploitRelaxationSolution_);
10201 }
10202 if (((bitField2_ & 0x40000000) != 0)) {
10203 size += com.google.protobuf.CodedOutputStream
10204 .computeBoolSize(162, debugPostsolveWithFullSolver_);
10205 }
10206 if (((bitField2_ & 0x00000080) != 0)) {
10207 size += com.google.protobuf.CodedOutputStream
10208 .computeBoolSize(163, useSatInprocessing_);
10209 }
10210 if (((bitField5_ & 0x04000000) != 0)) {
10211 size += com.google.protobuf.CodedOutputStream
10212 .computeBoolSize(164, useFeasibilityPump_);
10213 }
10214 if (((bitField5_ & 0x10000000) != 0)) {
10215 size += com.google.protobuf.CodedOutputStream
10216 .computeEnumSize(165, fpRounding_);
10217 }
10218 if (((bitField6_ & 0x00004000) != 0)) {
10219 size += com.google.protobuf.CodedOutputStream
10220 .computeBoolSize(166, mipAutomaticallyScaleVariables_);
10221 }
10222 if (((bitField4_ & 0x00004000) != 0)) {
10223 size += com.google.protobuf.CodedOutputStream
10224 .computeBoolSize(167, repairHint_);
10225 }
10226 if (((bitField0_ & 0x00000010) != 0)) {
10227 size += com.google.protobuf.CodedOutputStream
10228 .computeInt32Size(168, polarityRephaseIncrement_);
10229 }
10230 if (((bitField3_ & 0x40000000) != 0)) {
10231 size += com.google.protobuf.CodedOutputStream
10232 .computeBoolSize(169, addZeroHalfCuts_);
10233 }
10234 if (((bitField2_ & 0x00000400) != 0)) {
10235 size += com.google.protobuf.CodedOutputStream
10236 .computeBoolSize(170, expandAlldiffConstraints_);
10237 }
10238 if (((bitField0_ & 0x00000001) != 0)) {
10239 size += com.google.protobuf.GeneratedMessageV3.computeStringSize(171, name_);
10240 }
10241 if (((bitField3_ & 0x80000000) != 0)) {
10242 size += com.google.protobuf.CodedOutputStream
10243 .computeBoolSize(172, addCliqueCuts_);
10244 }
10245 if (((bitField5_ & 0x00008000) != 0)) {
10246 size += com.google.protobuf.CodedOutputStream
10247 .computeBoolSize(173, keepAllFeasibleSolutionsInPresolve_);
10248 }
10249 if (((bitField2_ & 0x00020000) != 0)) {
10250 size += com.google.protobuf.CodedOutputStream
10251 .computeBoolSize(174, presolveExtractIntegerEnforcement_);
10252 }
10253 if (((bitField6_ & 0x00000040) != 0)) {
10254 size += com.google.protobuf.CodedOutputStream
10255 .computeBoolSize(175, polishLpSolution_);
10256 }
10257 if (((bitField4_ & 0x00400000) != 0)) {
10258 size += com.google.protobuf.CodedOutputStream
10259 .computeBoolSize(176, useProbingSearch_);
10260 }
10261 if (((bitField6_ & 0x00000080) != 0)) {
10262 size += com.google.protobuf.CodedOutputStream
10263 .computeBoolSize(177, convertIntervals_);
10264 }
10265 if (((bitField1_ & 0x00008000) != 0)) {
10266 size += com.google.protobuf.CodedOutputStream
10267 .computeBoolSize(178, permuteVariableRandomly_);
10268 }
10269 if (((bitField1_ & 0x00010000) != 0)) {
10270 size += com.google.protobuf.CodedOutputStream
10271 .computeBoolSize(179, permutePresolveConstraintOrder_);
10272 }
10273 if (((bitField1_ & 0x00020000) != 0)) {
10274 size += com.google.protobuf.CodedOutputStream
10275 .computeBoolSize(180, useAbslRandom_);
10276 }
10277 if (((bitField2_ & 0x00001000) != 0)) {
10278 size += com.google.protobuf.CodedOutputStream
10279 .computeBoolSize(181, disableConstraintExpansion_);
10280 }
10281 if (((bitField2_ & 0x00000800) != 0)) {
10282 size += com.google.protobuf.CodedOutputStream
10283 .computeBoolSize(182, expandReservoirConstraints_);
10284 }
10285 if (((bitField6_ & 0x00000100) != 0)) {
10286 size += com.google.protobuf.CodedOutputStream
10287 .computeInt32Size(183, symmetryLevel_);
10288 }
10289 if (((bitField1_ & 0x00400000) != 0)) {
10290 size += com.google.protobuf.GeneratedMessageV3.computeStringSize(185, logPrefix_);
10291 }
10292 if (((bitField1_ & 0x00800000) != 0)) {
10293 size += com.google.protobuf.CodedOutputStream
10294 .computeBoolSize(186, logToStdout_);
10295 }
10296 if (((bitField1_ & 0x01000000) != 0)) {
10297 size += com.google.protobuf.CodedOutputStream
10298 .computeBoolSize(187, logToResponse_);
10299 }
10300 if (((bitField4_ & 0x20000000) != 0)) {
10301 size += com.google.protobuf.CodedOutputStream
10302 .computeBoolSize(188, optimizeWithLbTreeSearch_);
10303 }
10304 if (((bitField1_ & 0x00200000) != 0)) {
10305 size += com.google.protobuf.CodedOutputStream
10306 .computeBoolSize(189, logSubsolverStatistics_);
10307 }
10308 if (((bitField0_ & 0x00008000) != 0)) {
10309 size += com.google.protobuf.CodedOutputStream
10310 .computeDoubleSize(190, clauseCleanupRatio_);
10311 }
10312 if (((bitField3_ & 0x00800000) != 0)) {
10313 size += com.google.protobuf.CodedOutputStream
10314 .computeInt32Size(191, maxDomainSizeWhenEncodingEqNeqConstraints_);
10315 }
10316 if (((bitField4_ & 0x00008000) != 0)) {
10317 size += com.google.protobuf.CodedOutputStream
10318 .computeBoolSize(192, fixVariablesToTheirHintedValue_);
10319 }
10320 if (((bitField5_ & 0x01000000) != 0)) {
10321 size += com.google.protobuf.CodedOutputStream
10322 .computeInt32Size(193, solutionPoolSize_);
10323 }
10324 if (((bitField5_ & 0x00020000) != 0)) {
10325 size += com.google.protobuf.CodedOutputStream
10326 .computeBoolSize(194, fillAdditionalSolutionsInResponse_);
10327 }
10328 if (((bitField3_ & 0x00000001) != 0)) {
10329 size += com.google.protobuf.CodedOutputStream
10330 .computeBoolSize(195, debugCrashOnBadHint_);
10331 }
10332 if (((bitField3_ & 0x02000000) != 0)) {
10333 size += com.google.protobuf.CodedOutputStream
10334 .computeInt32Size(196, cutLevel_);
10335 }
10336 if (((bitField3_ & 0x08000000) != 0)) {
10337 size += com.google.protobuf.CodedOutputStream
10338 .computeBoolSize(197, addObjectiveCut_);
10339 }
10340 if (((bitField6_ & 0x00080000) != 0)) {
10341 size += com.google.protobuf.CodedOutputStream
10342 .computeBoolSize(198, mipComputeTrueObjectiveBound_);
10343 }
10344 if (((bitField6_ & 0x00100000) != 0)) {
10345 size += com.google.protobuf.CodedOutputStream
10346 .computeDoubleSize(199, mipMaxValidMagnitude_);
10347 }
10348 if (((bitField3_ & 0x00020000) != 0)) {
10349 size += com.google.protobuf.CodedOutputStream
10350 .computeBoolSize(200, useTimetablingInNoOverlap2D_);
10351 }
10352 if (((bitField2_ & 0x00040000) != 0)) {
10353 size += com.google.protobuf.CodedOutputStream
10354 .computeInt64Size(201, presolveInclusionWorkLimit_);
10355 }
10356 if (((bitField2_ & 0x00080000) != 0)) {
10357 size += com.google.protobuf.CodedOutputStream
10358 .computeBoolSize(202, ignoreNames_);
10359 }
10360 if (((bitField2_ & 0x20000000) != 0)) {
10361 size += com.google.protobuf.CodedOutputStream
10362 .computeBoolSize(203, shareBinaryClauses_);
10363 }
10364 if (((bitField4_ & 0x00800000) != 0)) {
10365 size += com.google.protobuf.CodedOutputStream
10366 .computeBoolSize(204, useShavingInProbingSearch_);
10367 }
10368 if (((bitField4_ & 0x01000000) != 0)) {
10369 size += com.google.protobuf.CodedOutputStream
10370 .computeDoubleSize(205, shavingSearchDeterministicTime_);
10371 }
10372 if (((bitField2_ & 0x00400000) != 0)) {
10373 size += com.google.protobuf.CodedOutputStream
10374 .computeInt32Size(206, numWorkers_);
10375 }
10376 {
10377 int dataSize = 0;
10378 for (int i = 0; i < subsolvers_.size(); i++) {
10379 dataSize += computeStringSizeNoTag(subsolvers_.getRaw(i));
10380 }
10381 size += dataSize;
10382 size += 2 * getSubsolversList().size();
10383 }
10384 {
10385 int dataSize = 0;
10386 for (int i = 0; i < ignoreSubsolvers_.size(); i++) {
10387 dataSize += computeStringSizeNoTag(ignoreSubsolvers_.getRaw(i));
10388 }
10389 size += dataSize;
10390 size += 2 * getIgnoreSubsolversList().size();
10391 }
10392 for (int i = 0; i < subsolverParams_.size(); i++) {
10393 size += com.google.protobuf.CodedOutputStream
10394 .computeMessageSize(210, subsolverParams_.get(i));
10395 }
10396 if (((bitField2_ & 0x01000000) != 0)) {
10397 size += com.google.protobuf.CodedOutputStream
10398 .computeInt32Size(211, minNumLnsWorkers_);
10399 }
10400 if (((bitField1_ & 0x00080000) != 0)) {
10401 size += com.google.protobuf.CodedOutputStream
10402 .computeDoubleSize(212, logFrequencyInSeconds_);
10403 }
10404 if (((bitField3_ & 0x00040000) != 0)) {
10405 size += com.google.protobuf.CodedOutputStream
10406 .computeBoolSize(213, useEnergeticReasoningInNoOverlap2D_);
10407 }
10408 if (((bitField3_ & 0x00100000) != 0)) {
10409 size += com.google.protobuf.CodedOutputStream
10410 .computeBoolSize(214, useDualSchedulingHeuristics_);
10411 }
10412 if (((bitField3_ & 0x00004000) != 0)) {
10413 size += com.google.protobuf.CodedOutputStream
10414 .computeBoolSize(215, useHardPrecedencesInCumulative_);
10415 }
10416 if (((bitField2_ & 0x00000100) != 0)) {
10417 size += com.google.protobuf.CodedOutputStream
10418 .computeBoolSize(216, detectTableWithCost_);
10419 }
10420 if (((bitField2_ & 0x00000200) != 0)) {
10421 size += com.google.protobuf.CodedOutputStream
10422 .computeInt32Size(217, tableCompressionLevel_);
10423 }
10424 if (((bitField1_ & 0x00100000) != 0)) {
10425 size += com.google.protobuf.CodedOutputStream
10426 .computeDoubleSize(218, modelReductionLogFrequencyInSeconds_);
10427 }
10428 {
10429 int dataSize = 0;
10430 for (int i = 0; i < extraSubsolvers_.size(); i++) {
10431 dataSize += computeStringSizeNoTag(extraSubsolvers_.getRaw(i));
10432 }
10433 size += dataSize;
10434 size += 2 * getExtraSubsolversList().size();
10435 }
10436 if (((bitField3_ & 0x00008000) != 0)) {
10437 size += com.google.protobuf.CodedOutputStream
10438 .computeBoolSize(220, exploitAllPrecedences_);
10439 }
10440 if (((bitField3_ & 0x00000100) != 0)) {
10441 size += com.google.protobuf.CodedOutputStream
10442 .computeDoubleSize(221, propagationLoopDetectionFactor_);
10443 }
10444 if (((bitField6_ & 0x00008000) != 0)) {
10445 size += com.google.protobuf.CodedOutputStream
10446 .computeBoolSize(222, onlySolveIp_);
10447 }
10448 if (((bitField2_ & 0x00002000) != 0)) {
10449 size += com.google.protobuf.CodedOutputStream
10450 .computeBoolSize(223, encodeComplexLinearConstraintWithInteger_);
10451 }
10452 if (((bitField6_ & 0x00000200) != 0)) {
10453 size += com.google.protobuf.CodedOutputStream
10454 .computeBoolSize(224, newLinearPropagation_);
10455 }
10456 if (((bitField6_ & 0x00002000) != 0)) {
10457 size += com.google.protobuf.CodedOutputStream
10458 .computeBoolSize(225, mipScaleLargeDomain_);
10459 }
10460 if (((bitField1_ & 0x40000000) != 0)) {
10461 size += com.google.protobuf.CodedOutputStream
10462 .computeDoubleSize(226, probingDeterministicTimeLimit_);
10463 }
10464 if (((bitField4_ & 0x00000010) != 0)) {
10465 size += com.google.protobuf.CodedOutputStream
10466 .computeInt32Size(227, rootLpIterations_);
10467 }
10468 if (((bitField4_ & 0x02000000) != 0)) {
10469 size += com.google.protobuf.CodedOutputStream
10470 .computeBoolSize(228, useObjectiveLbSearch_);
10471 }
10472 if (((bitField3_ & 0x00000400) != 0)) {
10473 size += com.google.protobuf.CodedOutputStream
10474 .computeInt32Size(229, maxSizeToCreatePrecedenceLiteralsInDisjunctive_);
10475 }
10476 if (((bitField3_ & 0x00000800) != 0)) {
10477 size += com.google.protobuf.CodedOutputStream
10478 .computeBoolSize(230, useStrongPropagationInDisjunctive_);
10479 }
10480 if (((bitField6_ & 0x00200000) != 0)) {
10481 size += com.google.protobuf.CodedOutputStream
10482 .computeDoubleSize(232, mipDropTolerance_);
10483 }
10484 if (((bitField2_ & 0x00100000) != 0)) {
10485 size += com.google.protobuf.CodedOutputStream
10486 .computeBoolSize(233, inferAllDiffs_);
10487 }
10488 if (((bitField2_ & 0x00200000) != 0)) {
10489 size += com.google.protobuf.CodedOutputStream
10490 .computeBoolSize(234, findBigLinearOverlap_);
10491 }
10492 if (((bitField5_ & 0x00000200) != 0)) {
10493 size += com.google.protobuf.CodedOutputStream
10494 .computeInt32Size(235, sharedTreeNumWorkers_);
10495 }
10496 if (((bitField5_ & 0x00000400) != 0)) {
10497 size += com.google.protobuf.CodedOutputStream
10498 .computeBoolSize(236, useSharedTreeSearch_);
10499 }
10500 if (((bitField5_ & 0x00000800) != 0)) {
10501 size += com.google.protobuf.CodedOutputStream
10502 .computeDoubleSize(237, sharedTreeWorkerObjectiveSplitProbability_);
10503 }
10504 if (((bitField5_ & 0x00001000) != 0)) {
10505 size += com.google.protobuf.CodedOutputStream
10506 .computeInt32Size(238, sharedTreeMaxNodesPerWorker_);
10507 }
10508 if (((bitField5_ & 0x00002000) != 0)) {
10509 size += com.google.protobuf.CodedOutputStream
10510 .computeEnumSize(239, sharedTreeSplitStrategy_);
10511 }
10512 if (((bitField5_ & 0x00000001) != 0)) {
10513 size += com.google.protobuf.CodedOutputStream
10514 .computeBoolSize(240, testFeasibilityJump_);
10515 }
10516 if (((bitField5_ & 0x00000008) != 0)) {
10517 size += com.google.protobuf.CodedOutputStream
10518 .computeDoubleSize(242, feasibilityJumpDecay_);
10519 }
10520 if (((bitField5_ & 0x00000080) != 0)) {
10521 size += com.google.protobuf.CodedOutputStream
10522 .computeInt32Size(244, numViolationLs_);
10523 }
10524 if (((bitField5_ & 0x00000002) != 0)) {
10525 size += com.google.protobuf.CodedOutputStream
10526 .computeInt64Size(245, feasibilityJumpMaxNumValuesScanned_);
10527 }
10528 if (((bitField5_ & 0x00000004) != 0)) {
10529 size += com.google.protobuf.CodedOutputStream
10530 .computeBoolSize(246, feasibilityJumpProtectLinearFeasibility_);
10531 }
10532 if (((bitField5_ & 0x00000010) != 0)) {
10533 size += com.google.protobuf.CodedOutputStream
10534 .computeDoubleSize(247, feasibilityJumpVarRandomizationProbability_);
10535 }
10536 if (((bitField5_ & 0x00000020) != 0)) {
10537 size += com.google.protobuf.CodedOutputStream
10538 .computeDoubleSize(248, feasibilityJumpVarPerburbationRangeRatio_);
10539 }
10540 if (((bitField5_ & 0x00000100) != 0)) {
10541 size += com.google.protobuf.CodedOutputStream
10542 .computeInt32Size(249, violationLsPerturbationPeriod_);
10543 }
10544 if (((bitField5_ & 0x00000040) != 0)) {
10545 size += com.google.protobuf.CodedOutputStream
10546 .computeBoolSize(250, feasibilityJumpEnableRestarts_);
10547 }
10548 if (((bitField3_ & 0x00080000) != 0)) {
10549 size += com.google.protobuf.CodedOutputStream
10550 .computeBoolSize(251, usePairwiseReasoningInNoOverlap2D_);
10551 }
10552 if (((bitField5_ & 0x00400000) != 0)) {
10553 size += com.google.protobuf.CodedOutputStream
10554 .computeBoolSize(252, stopAfterRootPropagation_);
10555 }
10556 if (((bitField4_ & 0x04000000) != 0)) {
10557 size += com.google.protobuf.CodedOutputStream
10558 .computeBoolSize(253, useObjectiveShavingSearch_);
10559 }
10560 if (((bitField5_ & 0x08000000) != 0)) {
10561 size += com.google.protobuf.CodedOutputStream
10562 .computeBoolSize(255, useLbRelaxLns_);
10563 }
10564 if (((bitField6_ & 0x00000400) != 0)) {
10565 size += com.google.protobuf.CodedOutputStream
10566 .computeInt32Size(256, linearSplitSize_);
10567 }
10568 size += getUnknownFields().getSerializedSize();
10569 memoizedSize = size;
10570 return size;
10571 }
10572
10573 @java.lang.Override
10574 public boolean equals(final java.lang.Object obj) {
10575 if (obj == this) {
10576 return true;
10577 }
10578 if (!(obj instanceof com.google.ortools.sat.SatParameters)) {
10579 return super.equals(obj);
10580 }
10581 com.google.ortools.sat.SatParameters other = (com.google.ortools.sat.SatParameters) obj;
10582
10583 if (hasName() != other.hasName()) return false;
10584 if (hasName()) {
10585 if (!getName()
10586 .equals(other.getName())) return false;
10587 }
10588 if (hasPreferredVariableOrder() != other.hasPreferredVariableOrder()) return false;
10590 if (preferredVariableOrder_ != other.preferredVariableOrder_) return false;
10591 }
10592 if (hasInitialPolarity() != other.hasInitialPolarity()) return false;
10593 if (hasInitialPolarity()) {
10594 if (initialPolarity_ != other.initialPolarity_) return false;
10595 }
10596 if (hasUsePhaseSaving() != other.hasUsePhaseSaving()) return false;
10597 if (hasUsePhaseSaving()) {
10598 if (getUsePhaseSaving()
10599 != other.getUsePhaseSaving()) return false;
10600 }
10601 if (hasPolarityRephaseIncrement() != other.hasPolarityRephaseIncrement()) return false;
10604 != other.getPolarityRephaseIncrement()) return false;
10605 }
10606 if (hasRandomPolarityRatio() != other.hasRandomPolarityRatio()) return false;
10607 if (hasRandomPolarityRatio()) {
10608 if (java.lang.Double.doubleToLongBits(getRandomPolarityRatio())
10609 != java.lang.Double.doubleToLongBits(
10610 other.getRandomPolarityRatio())) return false;
10611 }
10612 if (hasRandomBranchesRatio() != other.hasRandomBranchesRatio()) return false;
10613 if (hasRandomBranchesRatio()) {
10614 if (java.lang.Double.doubleToLongBits(getRandomBranchesRatio())
10615 != java.lang.Double.doubleToLongBits(
10616 other.getRandomBranchesRatio())) return false;
10617 }
10618 if (hasUseErwaHeuristic() != other.hasUseErwaHeuristic()) return false;
10619 if (hasUseErwaHeuristic()) {
10621 != other.getUseErwaHeuristic()) return false;
10622 }
10623 if (hasInitialVariablesActivity() != other.hasInitialVariablesActivity()) return false;
10625 if (java.lang.Double.doubleToLongBits(getInitialVariablesActivity())
10626 != java.lang.Double.doubleToLongBits(
10627 other.getInitialVariablesActivity())) return false;
10628 }
10632 != other.getAlsoBumpVariablesInConflictReasons()) return false;
10633 }
10634 if (hasMinimizationAlgorithm() != other.hasMinimizationAlgorithm()) return false;
10636 if (minimizationAlgorithm_ != other.minimizationAlgorithm_) return false;
10637 }
10640 if (binaryMinimizationAlgorithm_ != other.binaryMinimizationAlgorithm_) return false;
10641 }
10645 != other.getSubsumptionDuringConflictAnalysis()) return false;
10646 }
10647 if (hasClauseCleanupPeriod() != other.hasClauseCleanupPeriod()) return false;
10648 if (hasClauseCleanupPeriod()) {
10650 != other.getClauseCleanupPeriod()) return false;
10651 }
10652 if (hasClauseCleanupTarget() != other.hasClauseCleanupTarget()) return false;
10653 if (hasClauseCleanupTarget()) {
10655 != other.getClauseCleanupTarget()) return false;
10656 }
10657 if (hasClauseCleanupRatio() != other.hasClauseCleanupRatio()) return false;
10658 if (hasClauseCleanupRatio()) {
10659 if (java.lang.Double.doubleToLongBits(getClauseCleanupRatio())
10660 != java.lang.Double.doubleToLongBits(
10661 other.getClauseCleanupRatio())) return false;
10662 }
10663 if (hasClauseCleanupProtection() != other.hasClauseCleanupProtection()) return false;
10665 if (clauseCleanupProtection_ != other.clauseCleanupProtection_) return false;
10666 }
10667 if (hasClauseCleanupLbdBound() != other.hasClauseCleanupLbdBound()) return false;
10670 != other.getClauseCleanupLbdBound()) return false;
10671 }
10672 if (hasClauseCleanupOrdering() != other.hasClauseCleanupOrdering()) return false;
10674 if (clauseCleanupOrdering_ != other.clauseCleanupOrdering_) return false;
10675 }
10676 if (hasPbCleanupIncrement() != other.hasPbCleanupIncrement()) return false;
10677 if (hasPbCleanupIncrement()) {
10679 != other.getPbCleanupIncrement()) return false;
10680 }
10681 if (hasPbCleanupRatio() != other.hasPbCleanupRatio()) return false;
10682 if (hasPbCleanupRatio()) {
10683 if (java.lang.Double.doubleToLongBits(getPbCleanupRatio())
10684 != java.lang.Double.doubleToLongBits(
10685 other.getPbCleanupRatio())) return false;
10686 }
10690 != other.getMinimizeWithPropagationRestartPeriod()) return false;
10691 }
10695 != other.getMinimizeWithPropagationNumDecisions()) return false;
10696 }
10697 if (hasVariableActivityDecay() != other.hasVariableActivityDecay()) return false;
10699 if (java.lang.Double.doubleToLongBits(getVariableActivityDecay())
10700 != java.lang.Double.doubleToLongBits(
10701 other.getVariableActivityDecay())) return false;
10702 }
10703 if (hasMaxVariableActivityValue() != other.hasMaxVariableActivityValue()) return false;
10705 if (java.lang.Double.doubleToLongBits(getMaxVariableActivityValue())
10706 != java.lang.Double.doubleToLongBits(
10707 other.getMaxVariableActivityValue())) return false;
10708 }
10709 if (hasGlucoseMaxDecay() != other.hasGlucoseMaxDecay()) return false;
10710 if (hasGlucoseMaxDecay()) {
10711 if (java.lang.Double.doubleToLongBits(getGlucoseMaxDecay())
10712 != java.lang.Double.doubleToLongBits(
10713 other.getGlucoseMaxDecay())) return false;
10714 }
10715 if (hasGlucoseDecayIncrement() != other.hasGlucoseDecayIncrement()) return false;
10717 if (java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement())
10718 != java.lang.Double.doubleToLongBits(
10719 other.getGlucoseDecayIncrement())) return false;
10720 }
10724 != other.getGlucoseDecayIncrementPeriod()) return false;
10725 }
10726 if (hasClauseActivityDecay() != other.hasClauseActivityDecay()) return false;
10727 if (hasClauseActivityDecay()) {
10728 if (java.lang.Double.doubleToLongBits(getClauseActivityDecay())
10729 != java.lang.Double.doubleToLongBits(
10730 other.getClauseActivityDecay())) return false;
10731 }
10732 if (hasMaxClauseActivityValue() != other.hasMaxClauseActivityValue()) return false;
10734 if (java.lang.Double.doubleToLongBits(getMaxClauseActivityValue())
10735 != java.lang.Double.doubleToLongBits(
10736 other.getMaxClauseActivityValue())) return false;
10737 }
10738 if (!restartAlgorithms_.equals(other.restartAlgorithms_)) return false;
10739 if (hasDefaultRestartAlgorithms() != other.hasDefaultRestartAlgorithms()) return false;
10742 .equals(other.getDefaultRestartAlgorithms())) return false;
10743 }
10744 if (hasRestartPeriod() != other.hasRestartPeriod()) return false;
10745 if (hasRestartPeriod()) {
10746 if (getRestartPeriod()
10747 != other.getRestartPeriod()) return false;
10748 }
10749 if (hasRestartRunningWindowSize() != other.hasRestartRunningWindowSize()) return false;
10752 != other.getRestartRunningWindowSize()) return false;
10753 }
10754 if (hasRestartDlAverageRatio() != other.hasRestartDlAverageRatio()) return false;
10756 if (java.lang.Double.doubleToLongBits(getRestartDlAverageRatio())
10757 != java.lang.Double.doubleToLongBits(
10758 other.getRestartDlAverageRatio())) return false;
10759 }
10760 if (hasRestartLbdAverageRatio() != other.hasRestartLbdAverageRatio()) return false;
10762 if (java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio())
10763 != java.lang.Double.doubleToLongBits(
10764 other.getRestartLbdAverageRatio())) return false;
10765 }
10766 if (hasUseBlockingRestart() != other.hasUseBlockingRestart()) return false;
10767 if (hasUseBlockingRestart()) {
10769 != other.getUseBlockingRestart()) return false;
10770 }
10771 if (hasBlockingRestartWindowSize() != other.hasBlockingRestartWindowSize()) return false;
10774 != other.getBlockingRestartWindowSize()) return false;
10775 }
10776 if (hasBlockingRestartMultiplier() != other.hasBlockingRestartMultiplier()) return false;
10778 if (java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier())
10779 != java.lang.Double.doubleToLongBits(
10780 other.getBlockingRestartMultiplier())) return false;
10781 }
10785 != other.getNumConflictsBeforeStrategyChanges()) return false;
10786 }
10789 if (java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio())
10790 != java.lang.Double.doubleToLongBits(
10791 other.getStrategyChangeIncreaseRatio())) return false;
10792 }
10793 if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
10794 if (hasMaxTimeInSeconds()) {
10795 if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
10796 != java.lang.Double.doubleToLongBits(
10797 other.getMaxTimeInSeconds())) return false;
10798 }
10799 if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
10801 if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
10802 != java.lang.Double.doubleToLongBits(
10803 other.getMaxDeterministicTime())) return false;
10804 }
10805 if (hasMaxNumberOfConflicts() != other.hasMaxNumberOfConflicts()) return false;
10808 != other.getMaxNumberOfConflicts()) return false;
10809 }
10810 if (hasMaxMemoryInMb() != other.hasMaxMemoryInMb()) return false;
10811 if (hasMaxMemoryInMb()) {
10812 if (getMaxMemoryInMb()
10813 != other.getMaxMemoryInMb()) return false;
10814 }
10815 if (hasAbsoluteGapLimit() != other.hasAbsoluteGapLimit()) return false;
10816 if (hasAbsoluteGapLimit()) {
10817 if (java.lang.Double.doubleToLongBits(getAbsoluteGapLimit())
10818 != java.lang.Double.doubleToLongBits(
10819 other.getAbsoluteGapLimit())) return false;
10820 }
10821 if (hasRelativeGapLimit() != other.hasRelativeGapLimit()) return false;
10822 if (hasRelativeGapLimit()) {
10823 if (java.lang.Double.doubleToLongBits(getRelativeGapLimit())
10824 != java.lang.Double.doubleToLongBits(
10825 other.getRelativeGapLimit())) return false;
10826 }
10827 if (hasRandomSeed() != other.hasRandomSeed()) return false;
10828 if (hasRandomSeed()) {
10829 if (getRandomSeed()
10830 != other.getRandomSeed()) return false;
10831 }
10832 if (hasPermuteVariableRandomly() != other.hasPermuteVariableRandomly()) return false;
10835 != other.getPermuteVariableRandomly()) return false;
10836 }
10840 != other.getPermutePresolveConstraintOrder()) return false;
10841 }
10842 if (hasUseAbslRandom() != other.hasUseAbslRandom()) return false;
10843 if (hasUseAbslRandom()) {
10844 if (getUseAbslRandom()
10845 != other.getUseAbslRandom()) return false;
10846 }
10847 if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
10848 if (hasLogSearchProgress()) {
10850 != other.getLogSearchProgress()) return false;
10851 }
10852 if (hasLogFrequencyInSeconds() != other.hasLogFrequencyInSeconds()) return false;
10854 if (java.lang.Double.doubleToLongBits(getLogFrequencyInSeconds())
10855 != java.lang.Double.doubleToLongBits(
10856 other.getLogFrequencyInSeconds())) return false;
10857 }
10860 if (java.lang.Double.doubleToLongBits(getModelReductionLogFrequencyInSeconds())
10861 != java.lang.Double.doubleToLongBits(
10862 other.getModelReductionLogFrequencyInSeconds())) return false;
10863 }
10864 if (hasLogSubsolverStatistics() != other.hasLogSubsolverStatistics()) return false;
10867 != other.getLogSubsolverStatistics()) return false;
10868 }
10869 if (hasLogPrefix() != other.hasLogPrefix()) return false;
10870 if (hasLogPrefix()) {
10871 if (!getLogPrefix()
10872 .equals(other.getLogPrefix())) return false;
10873 }
10874 if (hasLogToStdout() != other.hasLogToStdout()) return false;
10875 if (hasLogToStdout()) {
10876 if (getLogToStdout()
10877 != other.getLogToStdout()) return false;
10878 }
10879 if (hasLogToResponse() != other.hasLogToResponse()) return false;
10880 if (hasLogToResponse()) {
10881 if (getLogToResponse()
10882 != other.getLogToResponse()) return false;
10883 }
10884 if (hasUsePbResolution() != other.hasUsePbResolution()) return false;
10885 if (hasUsePbResolution()) {
10886 if (getUsePbResolution()
10887 != other.getUsePbResolution()) return false;
10888 }
10892 != other.getMinimizeReductionDuringPbResolution()) return false;
10893 }
10894 if (hasCountAssumptionLevelsInLbd() != other.hasCountAssumptionLevelsInLbd()) return false;
10897 != other.getCountAssumptionLevelsInLbd()) return false;
10898 }
10899 if (hasPresolveBveThreshold() != other.hasPresolveBveThreshold()) return false;
10902 != other.getPresolveBveThreshold()) return false;
10903 }
10904 if (hasPresolveBveClauseWeight() != other.hasPresolveBveClauseWeight()) return false;
10907 != other.getPresolveBveClauseWeight()) return false;
10908 }
10911 if (java.lang.Double.doubleToLongBits(getProbingDeterministicTimeLimit())
10912 != java.lang.Double.doubleToLongBits(
10913 other.getProbingDeterministicTimeLimit())) return false;
10914 }
10917 if (java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit())
10918 != java.lang.Double.doubleToLongBits(
10919 other.getPresolveProbingDeterministicTimeLimit())) return false;
10920 }
10921 if (hasPresolveBlockedClause() != other.hasPresolveBlockedClause()) return false;
10924 != other.getPresolveBlockedClause()) return false;
10925 }
10926 if (hasPresolveUseBva() != other.hasPresolveUseBva()) return false;
10927 if (hasPresolveUseBva()) {
10928 if (getPresolveUseBva()
10929 != other.getPresolveUseBva()) return false;
10930 }
10931 if (hasPresolveBvaThreshold() != other.hasPresolveBvaThreshold()) return false;
10934 != other.getPresolveBvaThreshold()) return false;
10935 }
10936 if (hasMaxPresolveIterations() != other.hasMaxPresolveIterations()) return false;
10939 != other.getMaxPresolveIterations()) return false;
10940 }
10941 if (hasCpModelPresolve() != other.hasCpModelPresolve()) return false;
10942 if (hasCpModelPresolve()) {
10943 if (getCpModelPresolve()
10944 != other.getCpModelPresolve()) return false;
10945 }
10946 if (hasCpModelProbingLevel() != other.hasCpModelProbingLevel()) return false;
10947 if (hasCpModelProbingLevel()) {
10949 != other.getCpModelProbingLevel()) return false;
10950 }
10951 if (hasCpModelUseSatPresolve() != other.hasCpModelUseSatPresolve()) return false;
10954 != other.getCpModelUseSatPresolve()) return false;
10955 }
10956 if (hasUseSatInprocessing() != other.hasUseSatInprocessing()) return false;
10957 if (hasUseSatInprocessing()) {
10959 != other.getUseSatInprocessing()) return false;
10960 }
10961 if (hasDetectTableWithCost() != other.hasDetectTableWithCost()) return false;
10962 if (hasDetectTableWithCost()) {
10964 != other.getDetectTableWithCost()) return false;
10965 }
10966 if (hasTableCompressionLevel() != other.hasTableCompressionLevel()) return false;
10969 != other.getTableCompressionLevel()) return false;
10970 }
10971 if (hasExpandAlldiffConstraints() != other.hasExpandAlldiffConstraints()) return false;
10974 != other.getExpandAlldiffConstraints()) return false;
10975 }
10976 if (hasExpandReservoirConstraints() != other.hasExpandReservoirConstraints()) return false;
10979 != other.getExpandReservoirConstraints()) return false;
10980 }
10981 if (hasDisableConstraintExpansion() != other.hasDisableConstraintExpansion()) return false;
10984 != other.getDisableConstraintExpansion()) return false;
10985 }
10989 != other.getEncodeComplexLinearConstraintWithInteger()) return false;
10990 }
10991 if (hasMergeNoOverlapWorkLimit() != other.hasMergeNoOverlapWorkLimit()) return false;
10993 if (java.lang.Double.doubleToLongBits(getMergeNoOverlapWorkLimit())
10994 != java.lang.Double.doubleToLongBits(
10995 other.getMergeNoOverlapWorkLimit())) return false;
10996 }
10997 if (hasMergeAtMostOneWorkLimit() != other.hasMergeAtMostOneWorkLimit()) return false;
10999 if (java.lang.Double.doubleToLongBits(getMergeAtMostOneWorkLimit())
11000 != java.lang.Double.doubleToLongBits(
11001 other.getMergeAtMostOneWorkLimit())) return false;
11002 }
11003 if (hasPresolveSubstitutionLevel() != other.hasPresolveSubstitutionLevel()) return false;
11006 != other.getPresolveSubstitutionLevel()) return false;
11007 }
11011 != other.getPresolveExtractIntegerEnforcement()) return false;
11012 }
11013 if (hasPresolveInclusionWorkLimit() != other.hasPresolveInclusionWorkLimit()) return false;
11016 != other.getPresolveInclusionWorkLimit()) return false;
11017 }
11018 if (hasIgnoreNames() != other.hasIgnoreNames()) return false;
11019 if (hasIgnoreNames()) {
11020 if (getIgnoreNames()
11021 != other.getIgnoreNames()) return false;
11022 }
11023 if (hasInferAllDiffs() != other.hasInferAllDiffs()) return false;
11024 if (hasInferAllDiffs()) {
11025 if (getInferAllDiffs()
11026 != other.getInferAllDiffs()) return false;
11027 }
11028 if (hasFindBigLinearOverlap() != other.hasFindBigLinearOverlap()) return false;
11031 != other.getFindBigLinearOverlap()) return false;
11032 }
11033 if (hasNumWorkers() != other.hasNumWorkers()) return false;
11034 if (hasNumWorkers()) {
11035 if (getNumWorkers()
11036 != other.getNumWorkers()) return false;
11037 }
11038 if (hasNumSearchWorkers() != other.hasNumSearchWorkers()) return false;
11039 if (hasNumSearchWorkers()) {
11041 != other.getNumSearchWorkers()) return false;
11042 }
11043 if (hasMinNumLnsWorkers() != other.hasMinNumLnsWorkers()) return false;
11044 if (hasMinNumLnsWorkers()) {
11046 != other.getMinNumLnsWorkers()) return false;
11047 }
11048 if (!getSubsolversList()
11049 .equals(other.getSubsolversList())) return false;
11051 .equals(other.getExtraSubsolversList())) return false;
11053 .equals(other.getIgnoreSubsolversList())) return false;
11055 .equals(other.getSubsolverParamsList())) return false;
11056 if (hasInterleaveSearch() != other.hasInterleaveSearch()) return false;
11057 if (hasInterleaveSearch()) {
11059 != other.getInterleaveSearch()) return false;
11060 }
11061 if (hasInterleaveBatchSize() != other.hasInterleaveBatchSize()) return false;
11062 if (hasInterleaveBatchSize()) {
11064 != other.getInterleaveBatchSize()) return false;
11065 }
11066 if (hasShareObjectiveBounds() != other.hasShareObjectiveBounds()) return false;
11069 != other.getShareObjectiveBounds()) return false;
11070 }
11071 if (hasShareLevelZeroBounds() != other.hasShareLevelZeroBounds()) return false;
11074 != other.getShareLevelZeroBounds()) return false;
11075 }
11076 if (hasShareBinaryClauses() != other.hasShareBinaryClauses()) return false;
11077 if (hasShareBinaryClauses()) {
11079 != other.getShareBinaryClauses()) return false;
11080 }
11084 != other.getDebugPostsolveWithFullSolver()) return false;
11085 }
11089 != other.getDebugMaxNumPresolveOperations()) return false;
11090 }
11091 if (hasDebugCrashOnBadHint() != other.hasDebugCrashOnBadHint()) return false;
11092 if (hasDebugCrashOnBadHint()) {
11094 != other.getDebugCrashOnBadHint()) return false;
11095 }
11096 if (hasUseOptimizationHints() != other.hasUseOptimizationHints()) return false;
11099 != other.getUseOptimizationHints()) return false;
11100 }
11101 if (hasMinimizeCore() != other.hasMinimizeCore()) return false;
11102 if (hasMinimizeCore()) {
11103 if (getMinimizeCore()
11104 != other.getMinimizeCore()) return false;
11105 }
11106 if (hasFindMultipleCores() != other.hasFindMultipleCores()) return false;
11107 if (hasFindMultipleCores()) {
11109 != other.getFindMultipleCores()) return false;
11110 }
11111 if (hasCoverOptimization() != other.hasCoverOptimization()) return false;
11112 if (hasCoverOptimization()) {
11114 != other.getCoverOptimization()) return false;
11115 }
11116 if (hasMaxSatAssumptionOrder() != other.hasMaxSatAssumptionOrder()) return false;
11118 if (maxSatAssumptionOrder_ != other.maxSatAssumptionOrder_) return false;
11119 }
11123 != other.getMaxSatReverseAssumptionOrder()) return false;
11124 }
11125 if (hasMaxSatStratification() != other.hasMaxSatStratification()) return false;
11127 if (maxSatStratification_ != other.maxSatStratification_) return false;
11128 }
11131 if (java.lang.Double.doubleToLongBits(getPropagationLoopDetectionFactor())
11132 != java.lang.Double.doubleToLongBits(
11133 other.getPropagationLoopDetectionFactor())) return false;
11134 }
11138 != other.getUsePrecedencesInDisjunctiveConstraint()) return false;
11139 }
11144 }
11148 != other.getUseStrongPropagationInDisjunctive()) return false;
11149 }
11153 != other.getUseOverloadCheckerInCumulative()) return false;
11154 }
11158 != other.getUseTimetableEdgeFindingInCumulative()) return false;
11159 }
11163 != other.getUseHardPrecedencesInCumulative()) return false;
11164 }
11165 if (hasExploitAllPrecedences() != other.hasExploitAllPrecedences()) return false;
11168 != other.getExploitAllPrecedences()) return false;
11169 }
11173 != other.getUseDisjunctiveConstraintInCumulative()) return false;
11174 }
11178 != other.getUseTimetablingInNoOverlap2D()) return false;
11179 }
11183 != other.getUseEnergeticReasoningInNoOverlap2D()) return false;
11184 }
11188 != other.getUsePairwiseReasoningInNoOverlap2D()) return false;
11189 }
11193 != other.getUseDualSchedulingHeuristics()) return false;
11194 }
11195 if (hasLinearizationLevel() != other.hasLinearizationLevel()) return false;
11196 if (hasLinearizationLevel()) {
11198 != other.getLinearizationLevel()) return false;
11199 }
11200 if (hasBooleanEncodingLevel() != other.hasBooleanEncodingLevel()) return false;
11203 != other.getBooleanEncodingLevel()) return false;
11204 }
11208 != other.getMaxDomainSizeWhenEncodingEqNeqConstraints()) return false;
11209 }
11210 if (hasMaxNumCuts() != other.hasMaxNumCuts()) return false;
11211 if (hasMaxNumCuts()) {
11212 if (getMaxNumCuts()
11213 != other.getMaxNumCuts()) return false;
11214 }
11215 if (hasCutLevel() != other.hasCutLevel()) return false;
11216 if (hasCutLevel()) {
11217 if (getCutLevel()
11218 != other.getCutLevel()) return false;
11219 }
11220 if (hasOnlyAddCutsAtLevelZero() != other.hasOnlyAddCutsAtLevelZero()) return false;
11223 != other.getOnlyAddCutsAtLevelZero()) return false;
11224 }
11225 if (hasAddObjectiveCut() != other.hasAddObjectiveCut()) return false;
11226 if (hasAddObjectiveCut()) {
11227 if (getAddObjectiveCut()
11228 != other.getAddObjectiveCut()) return false;
11229 }
11230 if (hasAddCgCuts() != other.hasAddCgCuts()) return false;
11231 if (hasAddCgCuts()) {
11232 if (getAddCgCuts()
11233 != other.getAddCgCuts()) return false;
11234 }
11235 if (hasAddMirCuts() != other.hasAddMirCuts()) return false;
11236 if (hasAddMirCuts()) {
11237 if (getAddMirCuts()
11238 != other.getAddMirCuts()) return false;
11239 }
11240 if (hasAddZeroHalfCuts() != other.hasAddZeroHalfCuts()) return false;
11241 if (hasAddZeroHalfCuts()) {
11242 if (getAddZeroHalfCuts()
11243 != other.getAddZeroHalfCuts()) return false;
11244 }
11245 if (hasAddCliqueCuts() != other.hasAddCliqueCuts()) return false;
11246 if (hasAddCliqueCuts()) {
11247 if (getAddCliqueCuts()
11248 != other.getAddCliqueCuts()) return false;
11249 }
11250 if (hasMaxAllDiffCutSize() != other.hasMaxAllDiffCutSize()) return false;
11251 if (hasMaxAllDiffCutSize()) {
11253 != other.getMaxAllDiffCutSize()) return false;
11254 }
11255 if (hasAddLinMaxCuts() != other.hasAddLinMaxCuts()) return false;
11256 if (hasAddLinMaxCuts()) {
11257 if (getAddLinMaxCuts()
11258 != other.getAddLinMaxCuts()) return false;
11259 }
11260 if (hasMaxIntegerRoundingScaling() != other.hasMaxIntegerRoundingScaling()) return false;
11263 != other.getMaxIntegerRoundingScaling()) return false;
11264 }
11265 if (hasAddLpConstraintsLazily() != other.hasAddLpConstraintsLazily()) return false;
11268 != other.getAddLpConstraintsLazily()) return false;
11269 }
11270 if (hasRootLpIterations() != other.hasRootLpIterations()) return false;
11271 if (hasRootLpIterations()) {
11273 != other.getRootLpIterations()) return false;
11274 }
11277 if (java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints())
11278 != java.lang.Double.doubleToLongBits(
11279 other.getMinOrthogonalityForLpConstraints())) return false;
11280 }
11281 if (hasMaxCutRoundsAtLevelZero() != other.hasMaxCutRoundsAtLevelZero()) return false;
11284 != other.getMaxCutRoundsAtLevelZero()) return false;
11285 }
11289 != other.getMaxConsecutiveInactiveCount()) return false;
11290 }
11291 if (hasCutMaxActiveCountValue() != other.hasCutMaxActiveCountValue()) return false;
11293 if (java.lang.Double.doubleToLongBits(getCutMaxActiveCountValue())
11294 != java.lang.Double.doubleToLongBits(
11295 other.getCutMaxActiveCountValue())) return false;
11296 }
11297 if (hasCutActiveCountDecay() != other.hasCutActiveCountDecay()) return false;
11298 if (hasCutActiveCountDecay()) {
11299 if (java.lang.Double.doubleToLongBits(getCutActiveCountDecay())
11300 != java.lang.Double.doubleToLongBits(
11301 other.getCutActiveCountDecay())) return false;
11302 }
11303 if (hasCutCleanupTarget() != other.hasCutCleanupTarget()) return false;
11304 if (hasCutCleanupTarget()) {
11306 != other.getCutCleanupTarget()) return false;
11307 }
11308 if (hasNewConstraintsBatchSize() != other.hasNewConstraintsBatchSize()) return false;
11311 != other.getNewConstraintsBatchSize()) return false;
11312 }
11313 if (hasSearchBranching() != other.hasSearchBranching()) return false;
11314 if (hasSearchBranching()) {
11315 if (searchBranching_ != other.searchBranching_) return false;
11316 }
11317 if (hasHintConflictLimit() != other.hasHintConflictLimit()) return false;
11318 if (hasHintConflictLimit()) {
11320 != other.getHintConflictLimit()) return false;
11321 }
11322 if (hasRepairHint() != other.hasRepairHint()) return false;
11323 if (hasRepairHint()) {
11324 if (getRepairHint()
11325 != other.getRepairHint()) return false;
11326 }
11330 != other.getFixVariablesToTheirHintedValue()) return false;
11331 }
11332 if (hasExploitIntegerLpSolution() != other.hasExploitIntegerLpSolution()) return false;
11335 != other.getExploitIntegerLpSolution()) return false;
11336 }
11337 if (hasExploitAllLpSolution() != other.hasExploitAllLpSolution()) return false;
11340 != other.getExploitAllLpSolution()) return false;
11341 }
11342 if (hasExploitBestSolution() != other.hasExploitBestSolution()) return false;
11343 if (hasExploitBestSolution()) {
11345 != other.getExploitBestSolution()) return false;
11346 }
11347 if (hasExploitRelaxationSolution() != other.hasExploitRelaxationSolution()) return false;
11350 != other.getExploitRelaxationSolution()) return false;
11351 }
11352 if (hasExploitObjective() != other.hasExploitObjective()) return false;
11353 if (hasExploitObjective()) {
11355 != other.getExploitObjective()) return false;
11356 }
11357 if (hasProbingPeriodAtRoot() != other.hasProbingPeriodAtRoot()) return false;
11358 if (hasProbingPeriodAtRoot()) {
11360 != other.getProbingPeriodAtRoot()) return false;
11361 }
11362 if (hasUseProbingSearch() != other.hasUseProbingSearch()) return false;
11363 if (hasUseProbingSearch()) {
11365 != other.getUseProbingSearch()) return false;
11366 }
11367 if (hasUseShavingInProbingSearch() != other.hasUseShavingInProbingSearch()) return false;
11370 != other.getUseShavingInProbingSearch()) return false;
11371 }
11374 if (java.lang.Double.doubleToLongBits(getShavingSearchDeterministicTime())
11375 != java.lang.Double.doubleToLongBits(
11376 other.getShavingSearchDeterministicTime())) return false;
11377 }
11378 if (hasUseObjectiveLbSearch() != other.hasUseObjectiveLbSearch()) return false;
11381 != other.getUseObjectiveLbSearch()) return false;
11382 }
11383 if (hasUseObjectiveShavingSearch() != other.hasUseObjectiveShavingSearch()) return false;
11386 != other.getUseObjectiveShavingSearch()) return false;
11387 }
11391 != other.getPseudoCostReliabilityThreshold()) return false;
11392 }
11393 if (hasOptimizeWithCore() != other.hasOptimizeWithCore()) return false;
11394 if (hasOptimizeWithCore()) {
11396 != other.getOptimizeWithCore()) return false;
11397 }
11398 if (hasOptimizeWithLbTreeSearch() != other.hasOptimizeWithLbTreeSearch()) return false;
11401 != other.getOptimizeWithLbTreeSearch()) return false;
11402 }
11403 if (hasBinarySearchNumConflicts() != other.hasBinarySearchNumConflicts()) return false;
11406 != other.getBinarySearchNumConflicts()) return false;
11407 }
11408 if (hasOptimizeWithMaxHs() != other.hasOptimizeWithMaxHs()) return false;
11409 if (hasOptimizeWithMaxHs()) {
11411 != other.getOptimizeWithMaxHs()) return false;
11412 }
11413 if (hasTestFeasibilityJump() != other.hasTestFeasibilityJump()) return false;
11414 if (hasTestFeasibilityJump()) {
11416 != other.getTestFeasibilityJump()) return false;
11417 }
11421 != other.getFeasibilityJumpMaxNumValuesScanned()) return false;
11422 }
11426 != other.getFeasibilityJumpProtectLinearFeasibility()) return false;
11427 }
11428 if (hasFeasibilityJumpDecay() != other.hasFeasibilityJumpDecay()) return false;
11430 if (java.lang.Double.doubleToLongBits(getFeasibilityJumpDecay())
11431 != java.lang.Double.doubleToLongBits(
11432 other.getFeasibilityJumpDecay())) return false;
11433 }
11436 if (java.lang.Double.doubleToLongBits(getFeasibilityJumpVarRandomizationProbability())
11437 != java.lang.Double.doubleToLongBits(
11438 other.getFeasibilityJumpVarRandomizationProbability())) return false;
11439 }
11442 if (java.lang.Double.doubleToLongBits(getFeasibilityJumpVarPerburbationRangeRatio())
11443 != java.lang.Double.doubleToLongBits(
11444 other.getFeasibilityJumpVarPerburbationRangeRatio())) return false;
11445 }
11449 != other.getFeasibilityJumpEnableRestarts()) return false;
11450 }
11451 if (hasNumViolationLs() != other.hasNumViolationLs()) return false;
11452 if (hasNumViolationLs()) {
11453 if (getNumViolationLs()
11454 != other.getNumViolationLs()) return false;
11455 }
11459 != other.getViolationLsPerturbationPeriod()) return false;
11460 }
11461 if (hasSharedTreeNumWorkers() != other.hasSharedTreeNumWorkers()) return false;
11464 != other.getSharedTreeNumWorkers()) return false;
11465 }
11466 if (hasUseSharedTreeSearch() != other.hasUseSharedTreeSearch()) return false;
11467 if (hasUseSharedTreeSearch()) {
11469 != other.getUseSharedTreeSearch()) return false;
11470 }
11473 if (java.lang.Double.doubleToLongBits(getSharedTreeWorkerObjectiveSplitProbability())
11474 != java.lang.Double.doubleToLongBits(
11475 other.getSharedTreeWorkerObjectiveSplitProbability())) return false;
11476 }
11480 != other.getSharedTreeMaxNodesPerWorker()) return false;
11481 }
11482 if (hasSharedTreeSplitStrategy() != other.hasSharedTreeSplitStrategy()) return false;
11484 if (sharedTreeSplitStrategy_ != other.sharedTreeSplitStrategy_) return false;
11485 }
11486 if (hasEnumerateAllSolutions() != other.hasEnumerateAllSolutions()) return false;
11489 != other.getEnumerateAllSolutions()) return false;
11490 }
11494 != other.getKeepAllFeasibleSolutionsInPresolve()) return false;
11495 }
11499 != other.getFillTightenedDomainsInResponse()) return false;
11500 }
11504 != other.getFillAdditionalSolutionsInResponse()) return false;
11505 }
11506 if (hasInstantiateAllVariables() != other.hasInstantiateAllVariables()) return false;
11509 != other.getInstantiateAllVariables()) return false;
11510 }
11514 != other.getAutoDetectGreaterThanAtLeastOneOf()) return false;
11515 }
11516 if (hasStopAfterFirstSolution() != other.hasStopAfterFirstSolution()) return false;
11519 != other.getStopAfterFirstSolution()) return false;
11520 }
11521 if (hasStopAfterPresolve() != other.hasStopAfterPresolve()) return false;
11522 if (hasStopAfterPresolve()) {
11524 != other.getStopAfterPresolve()) return false;
11525 }
11526 if (hasStopAfterRootPropagation() != other.hasStopAfterRootPropagation()) return false;
11529 != other.getStopAfterRootPropagation()) return false;
11530 }
11531 if (hasUseLnsOnly() != other.hasUseLnsOnly()) return false;
11532 if (hasUseLnsOnly()) {
11533 if (getUseLnsOnly()
11534 != other.getUseLnsOnly()) return false;
11535 }
11536 if (hasSolutionPoolSize() != other.hasSolutionPoolSize()) return false;
11537 if (hasSolutionPoolSize()) {
11539 != other.getSolutionPoolSize()) return false;
11540 }
11541 if (hasUseRinsLns() != other.hasUseRinsLns()) return false;
11542 if (hasUseRinsLns()) {
11543 if (getUseRinsLns()
11544 != other.getUseRinsLns()) return false;
11545 }
11546 if (hasUseFeasibilityPump() != other.hasUseFeasibilityPump()) return false;
11547 if (hasUseFeasibilityPump()) {
11549 != other.getUseFeasibilityPump()) return false;
11550 }
11551 if (hasUseLbRelaxLns() != other.hasUseLbRelaxLns()) return false;
11552 if (hasUseLbRelaxLns()) {
11553 if (getUseLbRelaxLns()
11554 != other.getUseLbRelaxLns()) return false;
11555 }
11556 if (hasFpRounding() != other.hasFpRounding()) return false;
11557 if (hasFpRounding()) {
11558 if (fpRounding_ != other.fpRounding_) return false;
11559 }
11560 if (hasDiversifyLnsParams() != other.hasDiversifyLnsParams()) return false;
11561 if (hasDiversifyLnsParams()) {
11563 != other.getDiversifyLnsParams()) return false;
11564 }
11565 if (hasRandomizeSearch() != other.hasRandomizeSearch()) return false;
11566 if (hasRandomizeSearch()) {
11567 if (getRandomizeSearch()
11568 != other.getRandomizeSearch()) return false;
11569 }
11573 != other.getSearchRandomizationTolerance()) return false;
11574 }
11575 if (hasUseOptionalVariables() != other.hasUseOptionalVariables()) return false;
11578 != other.getUseOptionalVariables()) return false;
11579 }
11580 if (hasUseExactLpReason() != other.hasUseExactLpReason()) return false;
11581 if (hasUseExactLpReason()) {
11583 != other.getUseExactLpReason()) return false;
11584 }
11585 if (hasUseBranchingInLp() != other.hasUseBranchingInLp()) return false;
11586 if (hasUseBranchingInLp()) {
11588 != other.getUseBranchingInLp()) return false;
11589 }
11590 if (hasUseCombinedNoOverlap() != other.hasUseCombinedNoOverlap()) return false;
11593 != other.getUseCombinedNoOverlap()) return false;
11594 }
11595 if (hasCatchSigintSignal() != other.hasCatchSigintSignal()) return false;
11596 if (hasCatchSigintSignal()) {
11598 != other.getCatchSigintSignal()) return false;
11599 }
11600 if (hasUseImpliedBounds() != other.hasUseImpliedBounds()) return false;
11601 if (hasUseImpliedBounds()) {
11603 != other.getUseImpliedBounds()) return false;
11604 }
11605 if (hasPolishLpSolution() != other.hasPolishLpSolution()) return false;
11606 if (hasPolishLpSolution()) {
11608 != other.getPolishLpSolution()) return false;
11609 }
11610 if (hasConvertIntervals() != other.hasConvertIntervals()) return false;
11611 if (hasConvertIntervals()) {
11613 != other.getConvertIntervals()) return false;
11614 }
11615 if (hasSymmetryLevel() != other.hasSymmetryLevel()) return false;
11616 if (hasSymmetryLevel()) {
11617 if (getSymmetryLevel()
11618 != other.getSymmetryLevel()) return false;
11619 }
11620 if (hasNewLinearPropagation() != other.hasNewLinearPropagation()) return false;
11623 != other.getNewLinearPropagation()) return false;
11624 }
11625 if (hasLinearSplitSize() != other.hasLinearSplitSize()) return false;
11626 if (hasLinearSplitSize()) {
11627 if (getLinearSplitSize()
11628 != other.getLinearSplitSize()) return false;
11629 }
11630 if (hasMipMaxBound() != other.hasMipMaxBound()) return false;
11631 if (hasMipMaxBound()) {
11632 if (java.lang.Double.doubleToLongBits(getMipMaxBound())
11633 != java.lang.Double.doubleToLongBits(
11634 other.getMipMaxBound())) return false;
11635 }
11636 if (hasMipVarScaling() != other.hasMipVarScaling()) return false;
11637 if (hasMipVarScaling()) {
11638 if (java.lang.Double.doubleToLongBits(getMipVarScaling())
11639 != java.lang.Double.doubleToLongBits(
11640 other.getMipVarScaling())) return false;
11641 }
11642 if (hasMipScaleLargeDomain() != other.hasMipScaleLargeDomain()) return false;
11643 if (hasMipScaleLargeDomain()) {
11645 != other.getMipScaleLargeDomain()) return false;
11646 }
11650 != other.getMipAutomaticallyScaleVariables()) return false;
11651 }
11652 if (hasOnlySolveIp() != other.hasOnlySolveIp()) return false;
11653 if (hasOnlySolveIp()) {
11654 if (getOnlySolveIp()
11655 != other.getOnlySolveIp()) return false;
11656 }
11657 if (hasMipWantedPrecision() != other.hasMipWantedPrecision()) return false;
11658 if (hasMipWantedPrecision()) {
11659 if (java.lang.Double.doubleToLongBits(getMipWantedPrecision())
11660 != java.lang.Double.doubleToLongBits(
11661 other.getMipWantedPrecision())) return false;
11662 }
11663 if (hasMipMaxActivityExponent() != other.hasMipMaxActivityExponent()) return false;
11666 != other.getMipMaxActivityExponent()) return false;
11667 }
11668 if (hasMipCheckPrecision() != other.hasMipCheckPrecision()) return false;
11669 if (hasMipCheckPrecision()) {
11670 if (java.lang.Double.doubleToLongBits(getMipCheckPrecision())
11671 != java.lang.Double.doubleToLongBits(
11672 other.getMipCheckPrecision())) return false;
11673 }
11677 != other.getMipComputeTrueObjectiveBound()) return false;
11678 }
11679 if (hasMipMaxValidMagnitude() != other.hasMipMaxValidMagnitude()) return false;
11681 if (java.lang.Double.doubleToLongBits(getMipMaxValidMagnitude())
11682 != java.lang.Double.doubleToLongBits(
11683 other.getMipMaxValidMagnitude())) return false;
11684 }
11685 if (hasMipDropTolerance() != other.hasMipDropTolerance()) return false;
11686 if (hasMipDropTolerance()) {
11687 if (java.lang.Double.doubleToLongBits(getMipDropTolerance())
11688 != java.lang.Double.doubleToLongBits(
11689 other.getMipDropTolerance())) return false;
11690 }
11691 if (!getUnknownFields().equals(other.getUnknownFields())) return false;
11692 return true;
11693 }
11694
11695 @java.lang.Override
11696 public int hashCode() {
11697 if (memoizedHashCode != 0) {
11698 return memoizedHashCode;
11699 }
11700 int hash = 41;
11701 hash = (19 * hash) + getDescriptor().hashCode();
11702 if (hasName()) {
11703 hash = (37 * hash) + NAME_FIELD_NUMBER;
11704 hash = (53 * hash) + getName().hashCode();
11705 }
11707 hash = (37 * hash) + PREFERRED_VARIABLE_ORDER_FIELD_NUMBER;
11708 hash = (53 * hash) + preferredVariableOrder_;
11709 }
11710 if (hasInitialPolarity()) {
11711 hash = (37 * hash) + INITIAL_POLARITY_FIELD_NUMBER;
11712 hash = (53 * hash) + initialPolarity_;
11713 }
11714 if (hasUsePhaseSaving()) {
11715 hash = (37 * hash) + USE_PHASE_SAVING_FIELD_NUMBER;
11716 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
11718 }
11720 hash = (37 * hash) + POLARITY_REPHASE_INCREMENT_FIELD_NUMBER;
11721 hash = (53 * hash) + getPolarityRephaseIncrement();
11722 }
11723 if (hasRandomPolarityRatio()) {
11724 hash = (37 * hash) + RANDOM_POLARITY_RATIO_FIELD_NUMBER;
11725 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11726 java.lang.Double.doubleToLongBits(getRandomPolarityRatio()));
11727 }
11728 if (hasRandomBranchesRatio()) {
11729 hash = (37 * hash) + RANDOM_BRANCHES_RATIO_FIELD_NUMBER;
11730 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11731 java.lang.Double.doubleToLongBits(getRandomBranchesRatio()));
11732 }
11733 if (hasUseErwaHeuristic()) {
11734 hash = (37 * hash) + USE_ERWA_HEURISTIC_FIELD_NUMBER;
11735 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
11737 }
11739 hash = (37 * hash) + INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER;
11740 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11741 java.lang.Double.doubleToLongBits(getInitialVariablesActivity()));
11742 }
11745 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
11747 }
11749 hash = (37 * hash) + MINIMIZATION_ALGORITHM_FIELD_NUMBER;
11750 hash = (53 * hash) + minimizationAlgorithm_;
11751 }
11753 hash = (37 * hash) + BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER;
11754 hash = (53 * hash) + binaryMinimizationAlgorithm_;
11755 }
11758 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
11760 }
11761 if (hasClauseCleanupPeriod()) {
11762 hash = (37 * hash) + CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER;
11763 hash = (53 * hash) + getClauseCleanupPeriod();
11764 }
11765 if (hasClauseCleanupTarget()) {
11766 hash = (37 * hash) + CLAUSE_CLEANUP_TARGET_FIELD_NUMBER;
11767 hash = (53 * hash) + getClauseCleanupTarget();
11768 }
11769 if (hasClauseCleanupRatio()) {
11770 hash = (37 * hash) + CLAUSE_CLEANUP_RATIO_FIELD_NUMBER;
11771 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11772 java.lang.Double.doubleToLongBits(getClauseCleanupRatio()));
11773 }
11775 hash = (37 * hash) + CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER;
11776 hash = (53 * hash) + clauseCleanupProtection_;
11777 }
11779 hash = (37 * hash) + CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER;
11780 hash = (53 * hash) + getClauseCleanupLbdBound();
11781 }
11783 hash = (37 * hash) + CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER;
11784 hash = (53 * hash) + clauseCleanupOrdering_;
11785 }
11786 if (hasPbCleanupIncrement()) {
11787 hash = (37 * hash) + PB_CLEANUP_INCREMENT_FIELD_NUMBER;
11788 hash = (53 * hash) + getPbCleanupIncrement();
11789 }
11790 if (hasPbCleanupRatio()) {
11791 hash = (37 * hash) + PB_CLEANUP_RATIO_FIELD_NUMBER;
11792 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11793 java.lang.Double.doubleToLongBits(getPbCleanupRatio()));
11794 }
11797 hash = (53 * hash) + getMinimizeWithPropagationRestartPeriod();
11798 }
11801 hash = (53 * hash) + getMinimizeWithPropagationNumDecisions();
11802 }
11804 hash = (37 * hash) + VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER;
11805 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11806 java.lang.Double.doubleToLongBits(getVariableActivityDecay()));
11807 }
11809 hash = (37 * hash) + MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER;
11810 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11811 java.lang.Double.doubleToLongBits(getMaxVariableActivityValue()));
11812 }
11813 if (hasGlucoseMaxDecay()) {
11814 hash = (37 * hash) + GLUCOSE_MAX_DECAY_FIELD_NUMBER;
11815 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11816 java.lang.Double.doubleToLongBits(getGlucoseMaxDecay()));
11817 }
11819 hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER;
11820 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11821 java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement()));
11822 }
11825 hash = (53 * hash) + getGlucoseDecayIncrementPeriod();
11826 }
11827 if (hasClauseActivityDecay()) {
11828 hash = (37 * hash) + CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER;
11829 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11830 java.lang.Double.doubleToLongBits(getClauseActivityDecay()));
11831 }
11833 hash = (37 * hash) + MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER;
11834 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11835 java.lang.Double.doubleToLongBits(getMaxClauseActivityValue()));
11836 }
11837 if (getRestartAlgorithmsCount() > 0) {
11838 hash = (37 * hash) + RESTART_ALGORITHMS_FIELD_NUMBER;
11839 hash = (53 * hash) + restartAlgorithms_.hashCode();
11840 }
11842 hash = (37 * hash) + DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER;
11843 hash = (53 * hash) + getDefaultRestartAlgorithms().hashCode();
11844 }
11845 if (hasRestartPeriod()) {
11846 hash = (37 * hash) + RESTART_PERIOD_FIELD_NUMBER;
11847 hash = (53 * hash) + getRestartPeriod();
11848 }
11850 hash = (37 * hash) + RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER;
11851 hash = (53 * hash) + getRestartRunningWindowSize();
11852 }
11854 hash = (37 * hash) + RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER;
11855 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11856 java.lang.Double.doubleToLongBits(getRestartDlAverageRatio()));
11857 }
11859 hash = (37 * hash) + RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER;
11860 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11861 java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio()));
11862 }
11863 if (hasUseBlockingRestart()) {
11864 hash = (37 * hash) + USE_BLOCKING_RESTART_FIELD_NUMBER;
11865 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
11867 }
11869 hash = (37 * hash) + BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER;
11870 hash = (53 * hash) + getBlockingRestartWindowSize();
11871 }
11873 hash = (37 * hash) + BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER;
11874 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11875 java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier()));
11876 }
11879 hash = (53 * hash) + getNumConflictsBeforeStrategyChanges();
11880 }
11883 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11884 java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio()));
11885 }
11886 if (hasMaxTimeInSeconds()) {
11887 hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
11888 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11889 java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
11890 }
11892 hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
11893 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11894 java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
11895 }
11897 hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER;
11898 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11900 }
11901 if (hasMaxMemoryInMb()) {
11902 hash = (37 * hash) + MAX_MEMORY_IN_MB_FIELD_NUMBER;
11903 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11905 }
11906 if (hasAbsoluteGapLimit()) {
11907 hash = (37 * hash) + ABSOLUTE_GAP_LIMIT_FIELD_NUMBER;
11908 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11909 java.lang.Double.doubleToLongBits(getAbsoluteGapLimit()));
11910 }
11911 if (hasRelativeGapLimit()) {
11912 hash = (37 * hash) + RELATIVE_GAP_LIMIT_FIELD_NUMBER;
11913 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11914 java.lang.Double.doubleToLongBits(getRelativeGapLimit()));
11915 }
11916 if (hasRandomSeed()) {
11917 hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
11918 hash = (53 * hash) + getRandomSeed();
11919 }
11921 hash = (37 * hash) + PERMUTE_VARIABLE_RANDOMLY_FIELD_NUMBER;
11922 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
11924 }
11927 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
11929 }
11930 if (hasUseAbslRandom()) {
11931 hash = (37 * hash) + USE_ABSL_RANDOM_FIELD_NUMBER;
11932 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
11934 }
11935 if (hasLogSearchProgress()) {
11936 hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
11937 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
11939 }
11941 hash = (37 * hash) + LOG_FREQUENCY_IN_SECONDS_FIELD_NUMBER;
11942 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11943 java.lang.Double.doubleToLongBits(getLogFrequencyInSeconds()));
11944 }
11947 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11948 java.lang.Double.doubleToLongBits(getModelReductionLogFrequencyInSeconds()));
11949 }
11951 hash = (37 * hash) + LOG_SUBSOLVER_STATISTICS_FIELD_NUMBER;
11952 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
11954 }
11955 if (hasLogPrefix()) {
11956 hash = (37 * hash) + LOG_PREFIX_FIELD_NUMBER;
11957 hash = (53 * hash) + getLogPrefix().hashCode();
11958 }
11959 if (hasLogToStdout()) {
11960 hash = (37 * hash) + LOG_TO_STDOUT_FIELD_NUMBER;
11961 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
11962 getLogToStdout());
11963 }
11964 if (hasLogToResponse()) {
11965 hash = (37 * hash) + LOG_TO_RESPONSE_FIELD_NUMBER;
11966 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
11968 }
11969 if (hasUsePbResolution()) {
11970 hash = (37 * hash) + USE_PB_RESOLUTION_FIELD_NUMBER;
11971 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
11973 }
11976 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
11978 }
11981 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
11983 }
11985 hash = (37 * hash) + PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER;
11986 hash = (53 * hash) + getPresolveBveThreshold();
11987 }
11989 hash = (37 * hash) + PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER;
11990 hash = (53 * hash) + getPresolveBveClauseWeight();
11991 }
11994 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11995 java.lang.Double.doubleToLongBits(getProbingDeterministicTimeLimit()));
11996 }
11999 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12000 java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit()));
12001 }
12003 hash = (37 * hash) + PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER;
12004 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12006 }
12007 if (hasPresolveUseBva()) {
12008 hash = (37 * hash) + PRESOLVE_USE_BVA_FIELD_NUMBER;
12009 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12011 }
12013 hash = (37 * hash) + PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER;
12014 hash = (53 * hash) + getPresolveBvaThreshold();
12015 }
12017 hash = (37 * hash) + MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER;
12018 hash = (53 * hash) + getMaxPresolveIterations();
12019 }
12020 if (hasCpModelPresolve()) {
12021 hash = (37 * hash) + CP_MODEL_PRESOLVE_FIELD_NUMBER;
12022 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12024 }
12025 if (hasCpModelProbingLevel()) {
12026 hash = (37 * hash) + CP_MODEL_PROBING_LEVEL_FIELD_NUMBER;
12027 hash = (53 * hash) + getCpModelProbingLevel();
12028 }
12030 hash = (37 * hash) + CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER;
12031 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12033 }
12034 if (hasUseSatInprocessing()) {
12035 hash = (37 * hash) + USE_SAT_INPROCESSING_FIELD_NUMBER;
12036 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12038 }
12039 if (hasDetectTableWithCost()) {
12040 hash = (37 * hash) + DETECT_TABLE_WITH_COST_FIELD_NUMBER;
12041 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12043 }
12045 hash = (37 * hash) + TABLE_COMPRESSION_LEVEL_FIELD_NUMBER;
12046 hash = (53 * hash) + getTableCompressionLevel();
12047 }
12049 hash = (37 * hash) + EXPAND_ALLDIFF_CONSTRAINTS_FIELD_NUMBER;
12050 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12052 }
12054 hash = (37 * hash) + EXPAND_RESERVOIR_CONSTRAINTS_FIELD_NUMBER;
12055 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12057 }
12059 hash = (37 * hash) + DISABLE_CONSTRAINT_EXPANSION_FIELD_NUMBER;
12060 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12062 }
12065 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12067 }
12069 hash = (37 * hash) + MERGE_NO_OVERLAP_WORK_LIMIT_FIELD_NUMBER;
12070 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12071 java.lang.Double.doubleToLongBits(getMergeNoOverlapWorkLimit()));
12072 }
12074 hash = (37 * hash) + MERGE_AT_MOST_ONE_WORK_LIMIT_FIELD_NUMBER;
12075 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12076 java.lang.Double.doubleToLongBits(getMergeAtMostOneWorkLimit()));
12077 }
12079 hash = (37 * hash) + PRESOLVE_SUBSTITUTION_LEVEL_FIELD_NUMBER;
12080 hash = (53 * hash) + getPresolveSubstitutionLevel();
12081 }
12084 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12086 }
12088 hash = (37 * hash) + PRESOLVE_INCLUSION_WORK_LIMIT_FIELD_NUMBER;
12089 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12091 }
12092 if (hasIgnoreNames()) {
12093 hash = (37 * hash) + IGNORE_NAMES_FIELD_NUMBER;
12094 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12095 getIgnoreNames());
12096 }
12097 if (hasInferAllDiffs()) {
12098 hash = (37 * hash) + INFER_ALL_DIFFS_FIELD_NUMBER;
12099 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12101 }
12103 hash = (37 * hash) + FIND_BIG_LINEAR_OVERLAP_FIELD_NUMBER;
12104 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12106 }
12107 if (hasNumWorkers()) {
12108 hash = (37 * hash) + NUM_WORKERS_FIELD_NUMBER;
12109 hash = (53 * hash) + getNumWorkers();
12110 }
12111 if (hasNumSearchWorkers()) {
12112 hash = (37 * hash) + NUM_SEARCH_WORKERS_FIELD_NUMBER;
12113 hash = (53 * hash) + getNumSearchWorkers();
12114 }
12115 if (hasMinNumLnsWorkers()) {
12116 hash = (37 * hash) + MIN_NUM_LNS_WORKERS_FIELD_NUMBER;
12117 hash = (53 * hash) + getMinNumLnsWorkers();
12118 }
12119 if (getSubsolversCount() > 0) {
12120 hash = (37 * hash) + SUBSOLVERS_FIELD_NUMBER;
12121 hash = (53 * hash) + getSubsolversList().hashCode();
12122 }
12123 if (getExtraSubsolversCount() > 0) {
12124 hash = (37 * hash) + EXTRA_SUBSOLVERS_FIELD_NUMBER;
12125 hash = (53 * hash) + getExtraSubsolversList().hashCode();
12126 }
12127 if (getIgnoreSubsolversCount() > 0) {
12128 hash = (37 * hash) + IGNORE_SUBSOLVERS_FIELD_NUMBER;
12129 hash = (53 * hash) + getIgnoreSubsolversList().hashCode();
12130 }
12131 if (getSubsolverParamsCount() > 0) {
12132 hash = (37 * hash) + SUBSOLVER_PARAMS_FIELD_NUMBER;
12133 hash = (53 * hash) + getSubsolverParamsList().hashCode();
12134 }
12135 if (hasInterleaveSearch()) {
12136 hash = (37 * hash) + INTERLEAVE_SEARCH_FIELD_NUMBER;
12137 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12139 }
12140 if (hasInterleaveBatchSize()) {
12141 hash = (37 * hash) + INTERLEAVE_BATCH_SIZE_FIELD_NUMBER;
12142 hash = (53 * hash) + getInterleaveBatchSize();
12143 }
12145 hash = (37 * hash) + SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER;
12146 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12148 }
12150 hash = (37 * hash) + SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER;
12151 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12153 }
12154 if (hasShareBinaryClauses()) {
12155 hash = (37 * hash) + SHARE_BINARY_CLAUSES_FIELD_NUMBER;
12156 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12158 }
12161 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12163 }
12166 hash = (53 * hash) + getDebugMaxNumPresolveOperations();
12167 }
12168 if (hasDebugCrashOnBadHint()) {
12169 hash = (37 * hash) + DEBUG_CRASH_ON_BAD_HINT_FIELD_NUMBER;
12170 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12172 }
12174 hash = (37 * hash) + USE_OPTIMIZATION_HINTS_FIELD_NUMBER;
12175 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12177 }
12178 if (hasMinimizeCore()) {
12179 hash = (37 * hash) + MINIMIZE_CORE_FIELD_NUMBER;
12180 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12181 getMinimizeCore());
12182 }
12183 if (hasFindMultipleCores()) {
12184 hash = (37 * hash) + FIND_MULTIPLE_CORES_FIELD_NUMBER;
12185 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12187 }
12188 if (hasCoverOptimization()) {
12189 hash = (37 * hash) + COVER_OPTIMIZATION_FIELD_NUMBER;
12190 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12192 }
12194 hash = (37 * hash) + MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER;
12195 hash = (53 * hash) + maxSatAssumptionOrder_;
12196 }
12199 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12201 }
12203 hash = (37 * hash) + MAX_SAT_STRATIFICATION_FIELD_NUMBER;
12204 hash = (53 * hash) + maxSatStratification_;
12205 }
12208 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12209 java.lang.Double.doubleToLongBits(getPropagationLoopDetectionFactor()));
12210 }
12213 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12215 }
12219 }
12222 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12224 }
12227 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12229 }
12232 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12234 }
12237 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12239 }
12241 hash = (37 * hash) + EXPLOIT_ALL_PRECEDENCES_FIELD_NUMBER;
12242 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12244 }
12247 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12249 }
12252 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12254 }
12257 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12259 }
12262 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12264 }
12267 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12269 }
12270 if (hasLinearizationLevel()) {
12271 hash = (37 * hash) + LINEARIZATION_LEVEL_FIELD_NUMBER;
12272 hash = (53 * hash) + getLinearizationLevel();
12273 }
12275 hash = (37 * hash) + BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER;
12276 hash = (53 * hash) + getBooleanEncodingLevel();
12277 }
12280 hash = (53 * hash) + getMaxDomainSizeWhenEncodingEqNeqConstraints();
12281 }
12282 if (hasMaxNumCuts()) {
12283 hash = (37 * hash) + MAX_NUM_CUTS_FIELD_NUMBER;
12284 hash = (53 * hash) + getMaxNumCuts();
12285 }
12286 if (hasCutLevel()) {
12287 hash = (37 * hash) + CUT_LEVEL_FIELD_NUMBER;
12288 hash = (53 * hash) + getCutLevel();
12289 }
12291 hash = (37 * hash) + ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER;
12292 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12294 }
12295 if (hasAddObjectiveCut()) {
12296 hash = (37 * hash) + ADD_OBJECTIVE_CUT_FIELD_NUMBER;
12297 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12299 }
12300 if (hasAddCgCuts()) {
12301 hash = (37 * hash) + ADD_CG_CUTS_FIELD_NUMBER;
12302 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12303 getAddCgCuts());
12304 }
12305 if (hasAddMirCuts()) {
12306 hash = (37 * hash) + ADD_MIR_CUTS_FIELD_NUMBER;
12307 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12308 getAddMirCuts());
12309 }
12310 if (hasAddZeroHalfCuts()) {
12311 hash = (37 * hash) + ADD_ZERO_HALF_CUTS_FIELD_NUMBER;
12312 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12314 }
12315 if (hasAddCliqueCuts()) {
12316 hash = (37 * hash) + ADD_CLIQUE_CUTS_FIELD_NUMBER;
12317 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12319 }
12320 if (hasMaxAllDiffCutSize()) {
12321 hash = (37 * hash) + MAX_ALL_DIFF_CUT_SIZE_FIELD_NUMBER;
12322 hash = (53 * hash) + getMaxAllDiffCutSize();
12323 }
12324 if (hasAddLinMaxCuts()) {
12325 hash = (37 * hash) + ADD_LIN_MAX_CUTS_FIELD_NUMBER;
12326 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12328 }
12330 hash = (37 * hash) + MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER;
12331 hash = (53 * hash) + getMaxIntegerRoundingScaling();
12332 }
12334 hash = (37 * hash) + ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER;
12335 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12337 }
12338 if (hasRootLpIterations()) {
12339 hash = (37 * hash) + ROOT_LP_ITERATIONS_FIELD_NUMBER;
12340 hash = (53 * hash) + getRootLpIterations();
12341 }
12344 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12345 java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints()));
12346 }
12348 hash = (37 * hash) + MAX_CUT_ROUNDS_AT_LEVEL_ZERO_FIELD_NUMBER;
12349 hash = (53 * hash) + getMaxCutRoundsAtLevelZero();
12350 }
12353 hash = (53 * hash) + getMaxConsecutiveInactiveCount();
12354 }
12356 hash = (37 * hash) + CUT_MAX_ACTIVE_COUNT_VALUE_FIELD_NUMBER;
12357 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12358 java.lang.Double.doubleToLongBits(getCutMaxActiveCountValue()));
12359 }
12360 if (hasCutActiveCountDecay()) {
12361 hash = (37 * hash) + CUT_ACTIVE_COUNT_DECAY_FIELD_NUMBER;
12362 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12363 java.lang.Double.doubleToLongBits(getCutActiveCountDecay()));
12364 }
12365 if (hasCutCleanupTarget()) {
12366 hash = (37 * hash) + CUT_CLEANUP_TARGET_FIELD_NUMBER;
12367 hash = (53 * hash) + getCutCleanupTarget();
12368 }
12370 hash = (37 * hash) + NEW_CONSTRAINTS_BATCH_SIZE_FIELD_NUMBER;
12371 hash = (53 * hash) + getNewConstraintsBatchSize();
12372 }
12373 if (hasSearchBranching()) {
12374 hash = (37 * hash) + SEARCH_BRANCHING_FIELD_NUMBER;
12375 hash = (53 * hash) + searchBranching_;
12376 }
12377 if (hasHintConflictLimit()) {
12378 hash = (37 * hash) + HINT_CONFLICT_LIMIT_FIELD_NUMBER;
12379 hash = (53 * hash) + getHintConflictLimit();
12380 }
12381 if (hasRepairHint()) {
12382 hash = (37 * hash) + REPAIR_HINT_FIELD_NUMBER;
12383 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12384 getRepairHint());
12385 }
12388 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12390 }
12392 hash = (37 * hash) + EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER;
12393 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12395 }
12397 hash = (37 * hash) + EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER;
12398 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12400 }
12401 if (hasExploitBestSolution()) {
12402 hash = (37 * hash) + EXPLOIT_BEST_SOLUTION_FIELD_NUMBER;
12403 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12405 }
12407 hash = (37 * hash) + EXPLOIT_RELAXATION_SOLUTION_FIELD_NUMBER;
12408 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12410 }
12411 if (hasExploitObjective()) {
12412 hash = (37 * hash) + EXPLOIT_OBJECTIVE_FIELD_NUMBER;
12413 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12415 }
12416 if (hasProbingPeriodAtRoot()) {
12417 hash = (37 * hash) + PROBING_PERIOD_AT_ROOT_FIELD_NUMBER;
12418 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12420 }
12421 if (hasUseProbingSearch()) {
12422 hash = (37 * hash) + USE_PROBING_SEARCH_FIELD_NUMBER;
12423 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12425 }
12427 hash = (37 * hash) + USE_SHAVING_IN_PROBING_SEARCH_FIELD_NUMBER;
12428 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12430 }
12433 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12434 java.lang.Double.doubleToLongBits(getShavingSearchDeterministicTime()));
12435 }
12437 hash = (37 * hash) + USE_OBJECTIVE_LB_SEARCH_FIELD_NUMBER;
12438 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12440 }
12442 hash = (37 * hash) + USE_OBJECTIVE_SHAVING_SEARCH_FIELD_NUMBER;
12443 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12445 }
12448 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12450 }
12451 if (hasOptimizeWithCore()) {
12452 hash = (37 * hash) + OPTIMIZE_WITH_CORE_FIELD_NUMBER;
12453 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12455 }
12457 hash = (37 * hash) + OPTIMIZE_WITH_LB_TREE_SEARCH_FIELD_NUMBER;
12458 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12460 }
12462 hash = (37 * hash) + BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER;
12463 hash = (53 * hash) + getBinarySearchNumConflicts();
12464 }
12465 if (hasOptimizeWithMaxHs()) {
12466 hash = (37 * hash) + OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER;
12467 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12469 }
12470 if (hasTestFeasibilityJump()) {
12471 hash = (37 * hash) + TEST_FEASIBILITY_JUMP_FIELD_NUMBER;
12472 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12474 }
12477 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12479 }
12482 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12484 }
12486 hash = (37 * hash) + FEASIBILITY_JUMP_DECAY_FIELD_NUMBER;
12487 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12488 java.lang.Double.doubleToLongBits(getFeasibilityJumpDecay()));
12489 }
12492 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12493 java.lang.Double.doubleToLongBits(getFeasibilityJumpVarRandomizationProbability()));
12494 }
12497 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12498 java.lang.Double.doubleToLongBits(getFeasibilityJumpVarPerburbationRangeRatio()));
12499 }
12502 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12504 }
12505 if (hasNumViolationLs()) {
12506 hash = (37 * hash) + NUM_VIOLATION_LS_FIELD_NUMBER;
12507 hash = (53 * hash) + getNumViolationLs();
12508 }
12511 hash = (53 * hash) + getViolationLsPerturbationPeriod();
12512 }
12514 hash = (37 * hash) + SHARED_TREE_NUM_WORKERS_FIELD_NUMBER;
12515 hash = (53 * hash) + getSharedTreeNumWorkers();
12516 }
12517 if (hasUseSharedTreeSearch()) {
12518 hash = (37 * hash) + USE_SHARED_TREE_SEARCH_FIELD_NUMBER;
12519 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12521 }
12524 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12525 java.lang.Double.doubleToLongBits(getSharedTreeWorkerObjectiveSplitProbability()));
12526 }
12529 hash = (53 * hash) + getSharedTreeMaxNodesPerWorker();
12530 }
12532 hash = (37 * hash) + SHARED_TREE_SPLIT_STRATEGY_FIELD_NUMBER;
12533 hash = (53 * hash) + sharedTreeSplitStrategy_;
12534 }
12536 hash = (37 * hash) + ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER;
12537 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12539 }
12542 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12544 }
12547 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12549 }
12552 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12554 }
12556 hash = (37 * hash) + INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER;
12557 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12559 }
12562 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12564 }
12566 hash = (37 * hash) + STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER;
12567 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12569 }
12570 if (hasStopAfterPresolve()) {
12571 hash = (37 * hash) + STOP_AFTER_PRESOLVE_FIELD_NUMBER;
12572 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12574 }
12576 hash = (37 * hash) + STOP_AFTER_ROOT_PROPAGATION_FIELD_NUMBER;
12577 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12579 }
12580 if (hasUseLnsOnly()) {
12581 hash = (37 * hash) + USE_LNS_ONLY_FIELD_NUMBER;
12582 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12583 getUseLnsOnly());
12584 }
12585 if (hasSolutionPoolSize()) {
12586 hash = (37 * hash) + SOLUTION_POOL_SIZE_FIELD_NUMBER;
12587 hash = (53 * hash) + getSolutionPoolSize();
12588 }
12589 if (hasUseRinsLns()) {
12590 hash = (37 * hash) + USE_RINS_LNS_FIELD_NUMBER;
12591 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12592 getUseRinsLns());
12593 }
12594 if (hasUseFeasibilityPump()) {
12595 hash = (37 * hash) + USE_FEASIBILITY_PUMP_FIELD_NUMBER;
12596 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12598 }
12599 if (hasUseLbRelaxLns()) {
12600 hash = (37 * hash) + USE_LB_RELAX_LNS_FIELD_NUMBER;
12601 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12603 }
12604 if (hasFpRounding()) {
12605 hash = (37 * hash) + FP_ROUNDING_FIELD_NUMBER;
12606 hash = (53 * hash) + fpRounding_;
12607 }
12608 if (hasDiversifyLnsParams()) {
12609 hash = (37 * hash) + DIVERSIFY_LNS_PARAMS_FIELD_NUMBER;
12610 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12612 }
12613 if (hasRandomizeSearch()) {
12614 hash = (37 * hash) + RANDOMIZE_SEARCH_FIELD_NUMBER;
12615 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12617 }
12620 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12622 }
12624 hash = (37 * hash) + USE_OPTIONAL_VARIABLES_FIELD_NUMBER;
12625 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12627 }
12628 if (hasUseExactLpReason()) {
12629 hash = (37 * hash) + USE_EXACT_LP_REASON_FIELD_NUMBER;
12630 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12632 }
12633 if (hasUseBranchingInLp()) {
12634 hash = (37 * hash) + USE_BRANCHING_IN_LP_FIELD_NUMBER;
12635 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12637 }
12639 hash = (37 * hash) + USE_COMBINED_NO_OVERLAP_FIELD_NUMBER;
12640 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12642 }
12643 if (hasCatchSigintSignal()) {
12644 hash = (37 * hash) + CATCH_SIGINT_SIGNAL_FIELD_NUMBER;
12645 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12647 }
12648 if (hasUseImpliedBounds()) {
12649 hash = (37 * hash) + USE_IMPLIED_BOUNDS_FIELD_NUMBER;
12650 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12652 }
12653 if (hasPolishLpSolution()) {
12654 hash = (37 * hash) + POLISH_LP_SOLUTION_FIELD_NUMBER;
12655 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12657 }
12658 if (hasConvertIntervals()) {
12659 hash = (37 * hash) + CONVERT_INTERVALS_FIELD_NUMBER;
12660 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12662 }
12663 if (hasSymmetryLevel()) {
12664 hash = (37 * hash) + SYMMETRY_LEVEL_FIELD_NUMBER;
12665 hash = (53 * hash) + getSymmetryLevel();
12666 }
12668 hash = (37 * hash) + NEW_LINEAR_PROPAGATION_FIELD_NUMBER;
12669 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12671 }
12672 if (hasLinearSplitSize()) {
12673 hash = (37 * hash) + LINEAR_SPLIT_SIZE_FIELD_NUMBER;
12674 hash = (53 * hash) + getLinearSplitSize();
12675 }
12676 if (hasMipMaxBound()) {
12677 hash = (37 * hash) + MIP_MAX_BOUND_FIELD_NUMBER;
12678 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12679 java.lang.Double.doubleToLongBits(getMipMaxBound()));
12680 }
12681 if (hasMipVarScaling()) {
12682 hash = (37 * hash) + MIP_VAR_SCALING_FIELD_NUMBER;
12683 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12684 java.lang.Double.doubleToLongBits(getMipVarScaling()));
12685 }
12686 if (hasMipScaleLargeDomain()) {
12687 hash = (37 * hash) + MIP_SCALE_LARGE_DOMAIN_FIELD_NUMBER;
12688 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12690 }
12693 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12695 }
12696 if (hasOnlySolveIp()) {
12697 hash = (37 * hash) + ONLY_SOLVE_IP_FIELD_NUMBER;
12698 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12699 getOnlySolveIp());
12700 }
12701 if (hasMipWantedPrecision()) {
12702 hash = (37 * hash) + MIP_WANTED_PRECISION_FIELD_NUMBER;
12703 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12704 java.lang.Double.doubleToLongBits(getMipWantedPrecision()));
12705 }
12707 hash = (37 * hash) + MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER;
12708 hash = (53 * hash) + getMipMaxActivityExponent();
12709 }
12710 if (hasMipCheckPrecision()) {
12711 hash = (37 * hash) + MIP_CHECK_PRECISION_FIELD_NUMBER;
12712 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12713 java.lang.Double.doubleToLongBits(getMipCheckPrecision()));
12714 }
12717 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
12719 }
12721 hash = (37 * hash) + MIP_MAX_VALID_MAGNITUDE_FIELD_NUMBER;
12722 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12723 java.lang.Double.doubleToLongBits(getMipMaxValidMagnitude()));
12724 }
12725 if (hasMipDropTolerance()) {
12726 hash = (37 * hash) + MIP_DROP_TOLERANCE_FIELD_NUMBER;
12727 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
12728 java.lang.Double.doubleToLongBits(getMipDropTolerance()));
12729 }
12730 hash = (29 * hash) + getUnknownFields().hashCode();
12731 memoizedHashCode = hash;
12732 return hash;
12733 }
12734
12736 java.nio.ByteBuffer data)
12737 throws com.google.protobuf.InvalidProtocolBufferException {
12738 return PARSER.parseFrom(data);
12739 }
12741 java.nio.ByteBuffer data,
12742 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12743 throws com.google.protobuf.InvalidProtocolBufferException {
12744 return PARSER.parseFrom(data, extensionRegistry);
12745 }
12747 com.google.protobuf.ByteString data)
12748 throws com.google.protobuf.InvalidProtocolBufferException {
12749 return PARSER.parseFrom(data);
12750 }
12752 com.google.protobuf.ByteString data,
12753 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12754 throws com.google.protobuf.InvalidProtocolBufferException {
12755 return PARSER.parseFrom(data, extensionRegistry);
12756 }
12758 throws com.google.protobuf.InvalidProtocolBufferException {
12759 return PARSER.parseFrom(data);
12760 }
12762 byte[] data,
12763 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12764 throws com.google.protobuf.InvalidProtocolBufferException {
12765 return PARSER.parseFrom(data, extensionRegistry);
12766 }
12767 public static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
12768 throws java.io.IOException {
12769 return com.google.protobuf.GeneratedMessageV3
12770 .parseWithIOException(PARSER, input);
12771 }
12773 java.io.InputStream input,
12774 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12775 throws java.io.IOException {
12776 return com.google.protobuf.GeneratedMessageV3
12777 .parseWithIOException(PARSER, input, extensionRegistry);
12778 }
12779
12780 public static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
12781 throws java.io.IOException {
12782 return com.google.protobuf.GeneratedMessageV3
12783 .parseDelimitedWithIOException(PARSER, input);
12784 }
12785
12787 java.io.InputStream input,
12788 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12789 throws java.io.IOException {
12790 return com.google.protobuf.GeneratedMessageV3
12791 .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
12792 }
12794 com.google.protobuf.CodedInputStream input)
12795 throws java.io.IOException {
12796 return com.google.protobuf.GeneratedMessageV3
12797 .parseWithIOException(PARSER, input);
12798 }
12800 com.google.protobuf.CodedInputStream input,
12801 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12802 throws java.io.IOException {
12803 return com.google.protobuf.GeneratedMessageV3
12804 .parseWithIOException(PARSER, input, extensionRegistry);
12805 }
12806
12807 @java.lang.Override
12808 public Builder newBuilderForType() { return newBuilder(); }
12809 public static Builder newBuilder() {
12810 return DEFAULT_INSTANCE.toBuilder();
12811 }
12812 public static Builder newBuilder(com.google.ortools.sat.SatParameters prototype) {
12813 return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
12814 }
12815 @java.lang.Override
12817 return this == DEFAULT_INSTANCE
12818 ? new Builder() : new Builder().mergeFrom(this);
12819 }
12820
12821 @java.lang.Override
12823 com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
12824 Builder builder = new Builder(parent);
12825 return builder;
12826 }
12837 public static final class Builder extends
12838 com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
12839 // @@protoc_insertion_point(builder_implements:operations_research.sat.SatParameters)
12840 com.google.ortools.sat.SatParametersOrBuilder {
12841 public static final com.google.protobuf.Descriptors.Descriptor
12843 return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
12844 }
12845
12846 @java.lang.Override
12847 protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
12849 return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
12850 .ensureFieldAccessorsInitialized(
12851 com.google.ortools.sat.SatParameters.class, com.google.ortools.sat.SatParameters.Builder.class);
12852 }
12853
12854 // Construct using com.google.ortools.sat.SatParameters.newBuilder()
12855 private Builder() {
12856
12857 }
12858
12859 private Builder(
12860 com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
12861 super(parent);
12862
12863 }
12864 @java.lang.Override
12865 public Builder clear() {
12866 super.clear();
12867 bitField0_ = 0;
12868 bitField1_ = 0;
12869 bitField2_ = 0;
12870 bitField3_ = 0;
12871 bitField4_ = 0;
12872 bitField5_ = 0;
12873 bitField6_ = 0;
12874 name_ = "";
12875 preferredVariableOrder_ = 0;
12876 initialPolarity_ = 1;
12877 usePhaseSaving_ = true;
12878 polarityRephaseIncrement_ = 1000;
12879 randomPolarityRatio_ = 0D;
12880 randomBranchesRatio_ = 0D;
12881 useErwaHeuristic_ = false;
12882 initialVariablesActivity_ = 0D;
12883 alsoBumpVariablesInConflictReasons_ = false;
12884 minimizationAlgorithm_ = 2;
12885 binaryMinimizationAlgorithm_ = 1;
12886 subsumptionDuringConflictAnalysis_ = true;
12887 clauseCleanupPeriod_ = 10000;
12888 clauseCleanupTarget_ = 0;
12889 clauseCleanupRatio_ = 0.5D;
12890 clauseCleanupProtection_ = 0;
12891 clauseCleanupLbdBound_ = 5;
12892 clauseCleanupOrdering_ = 0;
12893 pbCleanupIncrement_ = 200;
12894 pbCleanupRatio_ = 0.5D;
12895 minimizeWithPropagationRestartPeriod_ = 10;
12896 minimizeWithPropagationNumDecisions_ = 1000;
12897 variableActivityDecay_ = 0.8D;
12898 maxVariableActivityValue_ = 1e+100D;
12899 glucoseMaxDecay_ = 0.95D;
12900 glucoseDecayIncrement_ = 0.01D;
12901 glucoseDecayIncrementPeriod_ = 5000;
12902 clauseActivityDecay_ = 0.999D;
12903 maxClauseActivityValue_ = 1e+20D;
12904 restartAlgorithms_ = java.util.Collections.emptyList();
12905 bitField0_ = (bitField0_ & ~0x40000000);
12906 defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
12907 restartPeriod_ = 50;
12908 restartRunningWindowSize_ = 50;
12909 restartDlAverageRatio_ = 1D;
12910 restartLbdAverageRatio_ = 1D;
12911 useBlockingRestart_ = false;
12912 blockingRestartWindowSize_ = 5000;
12913 blockingRestartMultiplier_ = 1.4D;
12914 numConflictsBeforeStrategyChanges_ = 0;
12915 strategyChangeIncreaseRatio_ = 0D;
12916 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
12917 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
12918 maxNumberOfConflicts_ = 9223372036854775807L;
12919 maxMemoryInMb_ = 10000L;
12920 absoluteGapLimit_ = 0.0001D;
12921 relativeGapLimit_ = 0D;
12922 randomSeed_ = 1;
12923 permuteVariableRandomly_ = false;
12924 permutePresolveConstraintOrder_ = false;
12925 useAbslRandom_ = false;
12926 logSearchProgress_ = false;
12927 logFrequencyInSeconds_ = -1D;
12928 modelReductionLogFrequencyInSeconds_ = 5D;
12929 logSubsolverStatistics_ = false;
12930 logPrefix_ = "";
12931 logToStdout_ = true;
12932 logToResponse_ = false;
12933 usePbResolution_ = false;
12934 minimizeReductionDuringPbResolution_ = false;
12935 countAssumptionLevelsInLbd_ = true;
12936 presolveBveThreshold_ = 500;
12937 presolveBveClauseWeight_ = 3;
12938 probingDeterministicTimeLimit_ = 1D;
12939 presolveProbingDeterministicTimeLimit_ = 30D;
12940 presolveBlockedClause_ = true;
12941 presolveUseBva_ = true;
12942 presolveBvaThreshold_ = 1;
12943 maxPresolveIterations_ = 3;
12944 cpModelPresolve_ = true;
12945 cpModelProbingLevel_ = 2;
12946 cpModelUseSatPresolve_ = true;
12947 useSatInprocessing_ = false;
12948 detectTableWithCost_ = false;
12949 tableCompressionLevel_ = 2;
12950 expandAlldiffConstraints_ = false;
12951 expandReservoirConstraints_ = true;
12952 disableConstraintExpansion_ = false;
12953 encodeComplexLinearConstraintWithInteger_ = false;
12954 mergeNoOverlapWorkLimit_ = 1000000000000D;
12955 mergeAtMostOneWorkLimit_ = 100000000D;
12956 presolveSubstitutionLevel_ = 1;
12957 presolveExtractIntegerEnforcement_ = false;
12958 presolveInclusionWorkLimit_ = 100000000L;
12959 ignoreNames_ = true;
12960 inferAllDiffs_ = true;
12961 findBigLinearOverlap_ = true;
12962 numWorkers_ = 0;
12963 numSearchWorkers_ = 0;
12964 minNumLnsWorkers_ = 2;
12965 subsolvers_ =
12966 com.google.protobuf.LazyStringArrayList.emptyList();
12967 extraSubsolvers_ =
12968 com.google.protobuf.LazyStringArrayList.emptyList();
12969 ignoreSubsolvers_ =
12970 com.google.protobuf.LazyStringArrayList.emptyList();
12971 if (subsolverParamsBuilder_ == null) {
12972 subsolverParams_ = java.util.Collections.emptyList();
12973 } else {
12974 subsolverParams_ = null;
12975 subsolverParamsBuilder_.clear();
12976 }
12977 bitField2_ = (bitField2_ & ~0x20000000);
12978 interleaveSearch_ = false;
12979 interleaveBatchSize_ = 0;
12980 shareObjectiveBounds_ = true;
12981 shareLevelZeroBounds_ = true;
12982 shareBinaryClauses_ = true;
12983 debugPostsolveWithFullSolver_ = false;
12984 debugMaxNumPresolveOperations_ = 0;
12985 debugCrashOnBadHint_ = false;
12986 useOptimizationHints_ = true;
12987 minimizeCore_ = true;
12988 findMultipleCores_ = true;
12989 coverOptimization_ = true;
12990 maxSatAssumptionOrder_ = 0;
12991 maxSatReverseAssumptionOrder_ = false;
12992 maxSatStratification_ = 1;
12993 propagationLoopDetectionFactor_ = 10D;
12994 usePrecedencesInDisjunctiveConstraint_ = true;
12995 maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = 60;
12996 useStrongPropagationInDisjunctive_ = false;
12997 useOverloadCheckerInCumulative_ = false;
12998 useTimetableEdgeFindingInCumulative_ = false;
12999 useHardPrecedencesInCumulative_ = false;
13000 exploitAllPrecedences_ = false;
13001 useDisjunctiveConstraintInCumulative_ = true;
13002 useTimetablingInNoOverlap2D_ = false;
13003 useEnergeticReasoningInNoOverlap2D_ = false;
13004 usePairwiseReasoningInNoOverlap2D_ = false;
13005 useDualSchedulingHeuristics_ = true;
13006 linearizationLevel_ = 1;
13007 booleanEncodingLevel_ = 1;
13008 maxDomainSizeWhenEncodingEqNeqConstraints_ = 16;
13009 maxNumCuts_ = 10000;
13010 cutLevel_ = 1;
13011 onlyAddCutsAtLevelZero_ = false;
13012 addObjectiveCut_ = false;
13013 addCgCuts_ = true;
13014 addMirCuts_ = true;
13015 addZeroHalfCuts_ = true;
13016 addCliqueCuts_ = true;
13017 maxAllDiffCutSize_ = 64;
13018 addLinMaxCuts_ = true;
13019 maxIntegerRoundingScaling_ = 600;
13020 addLpConstraintsLazily_ = true;
13021 rootLpIterations_ = 2000;
13022 minOrthogonalityForLpConstraints_ = 0.05D;
13023 maxCutRoundsAtLevelZero_ = 1;
13024 maxConsecutiveInactiveCount_ = 100;
13025 cutMaxActiveCountValue_ = 10000000000D;
13026 cutActiveCountDecay_ = 0.8D;
13027 cutCleanupTarget_ = 1000;
13028 newConstraintsBatchSize_ = 50;
13029 searchBranching_ = 0;
13030 hintConflictLimit_ = 10;
13031 repairHint_ = false;
13032 fixVariablesToTheirHintedValue_ = false;
13033 exploitIntegerLpSolution_ = true;
13034 exploitAllLpSolution_ = true;
13035 exploitBestSolution_ = false;
13036 exploitRelaxationSolution_ = false;
13037 exploitObjective_ = true;
13038 probingPeriodAtRoot_ = 0L;
13039 useProbingSearch_ = false;
13040 useShavingInProbingSearch_ = true;
13041 shavingSearchDeterministicTime_ = 0.001D;
13042 useObjectiveLbSearch_ = false;
13043 useObjectiveShavingSearch_ = false;
13044 pseudoCostReliabilityThreshold_ = 100L;
13045 optimizeWithCore_ = false;
13046 optimizeWithLbTreeSearch_ = false;
13047 binarySearchNumConflicts_ = -1;
13048 optimizeWithMaxHs_ = false;
13049 testFeasibilityJump_ = false;
13050 feasibilityJumpMaxNumValuesScanned_ = 4096L;
13051 feasibilityJumpProtectLinearFeasibility_ = true;
13052 feasibilityJumpDecay_ = 1D;
13053 feasibilityJumpVarRandomizationProbability_ = 0D;
13054 feasibilityJumpVarPerburbationRangeRatio_ = 0.2D;
13055 feasibilityJumpEnableRestarts_ = true;
13056 numViolationLs_ = 0;
13057 violationLsPerturbationPeriod_ = 100;
13058 sharedTreeNumWorkers_ = 0;
13059 useSharedTreeSearch_ = false;
13060 sharedTreeWorkerObjectiveSplitProbability_ = 0.5D;
13061 sharedTreeMaxNodesPerWorker_ = 128;
13062 sharedTreeSplitStrategy_ = 0;
13063 enumerateAllSolutions_ = false;
13064 keepAllFeasibleSolutionsInPresolve_ = false;
13065 fillTightenedDomainsInResponse_ = false;
13066 fillAdditionalSolutionsInResponse_ = false;
13067 instantiateAllVariables_ = true;
13068 autoDetectGreaterThanAtLeastOneOf_ = true;
13069 stopAfterFirstSolution_ = false;
13070 stopAfterPresolve_ = false;
13071 stopAfterRootPropagation_ = false;
13072 useLnsOnly_ = false;
13073 solutionPoolSize_ = 3;
13074 useRinsLns_ = true;
13075 useFeasibilityPump_ = true;
13076 useLbRelaxLns_ = false;
13077 fpRounding_ = 2;
13078 diversifyLnsParams_ = false;
13079 randomizeSearch_ = false;
13080 searchRandomizationTolerance_ = 0L;
13081 useOptionalVariables_ = false;
13082 useExactLpReason_ = true;
13083 useBranchingInLp_ = false;
13084 useCombinedNoOverlap_ = false;
13085 catchSigintSignal_ = true;
13086 useImpliedBounds_ = true;
13087 polishLpSolution_ = false;
13088 convertIntervals_ = true;
13089 symmetryLevel_ = 2;
13090 newLinearPropagation_ = false;
13091 linearSplitSize_ = 100;
13092 mipMaxBound_ = 10000000D;
13093 mipVarScaling_ = 1D;
13094 mipScaleLargeDomain_ = false;
13095 mipAutomaticallyScaleVariables_ = true;
13096 onlySolveIp_ = false;
13097 mipWantedPrecision_ = 1e-06D;
13098 mipMaxActivityExponent_ = 53;
13099 mipCheckPrecision_ = 0.0001D;
13100 mipComputeTrueObjectiveBound_ = true;
13101 mipMaxValidMagnitude_ = 1e+30D;
13102 mipDropTolerance_ = 1e-16D;
13103 return this;
13104 }
13105
13106 @java.lang.Override
13107 public com.google.protobuf.Descriptors.Descriptor
13109 return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
13110 }
13111
13112 @java.lang.Override
13114 return com.google.ortools.sat.SatParameters.getDefaultInstance();
13115 }
13116
13117 @java.lang.Override
13120 if (!result.isInitialized()) {
13121 throw newUninitializedMessageException(result);
13122 }
13123 return result;
13124 }
13125
13126 @java.lang.Override
13128 com.google.ortools.sat.SatParameters result = new com.google.ortools.sat.SatParameters(this);
13129 buildPartialRepeatedFields(result);
13130 if (bitField0_ != 0) { buildPartial0(result); }
13131 if (bitField1_ != 0) { buildPartial1(result); }
13132 if (bitField2_ != 0) { buildPartial2(result); }
13133 if (bitField3_ != 0) { buildPartial3(result); }
13134 if (bitField4_ != 0) { buildPartial4(result); }
13135 if (bitField5_ != 0) { buildPartial5(result); }
13136 if (bitField6_ != 0) { buildPartial6(result); }
13137 onBuilt();
13138 return result;
13139 }
13140
13141 private void buildPartialRepeatedFields(com.google.ortools.sat.SatParameters result) {
13142 if (((bitField0_ & 0x40000000) != 0)) {
13143 restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
13144 bitField0_ = (bitField0_ & ~0x40000000);
13145 }
13146 result.restartAlgorithms_ = restartAlgorithms_;
13147 if (subsolverParamsBuilder_ == null) {
13148 if (((bitField2_ & 0x20000000) != 0)) {
13149 subsolverParams_ = java.util.Collections.unmodifiableList(subsolverParams_);
13150 bitField2_ = (bitField2_ & ~0x20000000);
13151 }
13152 result.subsolverParams_ = subsolverParams_;
13153 } else {
13154 result.subsolverParams_ = subsolverParamsBuilder_.build();
13155 }
13156 }
13157
13158 private void buildPartial0(com.google.ortools.sat.SatParameters result) {
13159 int from_bitField0_ = bitField0_;
13160 int to_bitField0_ = 0;
13161 if (((from_bitField0_ & 0x00000001) != 0)) {
13162 result.name_ = name_;
13163 to_bitField0_ |= 0x00000001;
13164 }
13165 if (((from_bitField0_ & 0x00000002) != 0)) {
13166 result.preferredVariableOrder_ = preferredVariableOrder_;
13167 to_bitField0_ |= 0x00000002;
13168 }
13169 if (((from_bitField0_ & 0x00000004) != 0)) {
13170 result.initialPolarity_ = initialPolarity_;
13171 to_bitField0_ |= 0x00000004;
13172 }
13173 if (((from_bitField0_ & 0x00000008) != 0)) {
13174 result.usePhaseSaving_ = usePhaseSaving_;
13175 to_bitField0_ |= 0x00000008;
13176 }
13177 if (((from_bitField0_ & 0x00000010) != 0)) {
13178 result.polarityRephaseIncrement_ = polarityRephaseIncrement_;
13179 to_bitField0_ |= 0x00000010;
13180 }
13181 if (((from_bitField0_ & 0x00000020) != 0)) {
13182 result.randomPolarityRatio_ = randomPolarityRatio_;
13183 to_bitField0_ |= 0x00000020;
13184 }
13185 if (((from_bitField0_ & 0x00000040) != 0)) {
13186 result.randomBranchesRatio_ = randomBranchesRatio_;
13187 to_bitField0_ |= 0x00000040;
13188 }
13189 if (((from_bitField0_ & 0x00000080) != 0)) {
13190 result.useErwaHeuristic_ = useErwaHeuristic_;
13191 to_bitField0_ |= 0x00000080;
13192 }
13193 if (((from_bitField0_ & 0x00000100) != 0)) {
13194 result.initialVariablesActivity_ = initialVariablesActivity_;
13195 to_bitField0_ |= 0x00000100;
13196 }
13197 if (((from_bitField0_ & 0x00000200) != 0)) {
13198 result.alsoBumpVariablesInConflictReasons_ = alsoBumpVariablesInConflictReasons_;
13199 to_bitField0_ |= 0x00000200;
13200 }
13201 if (((from_bitField0_ & 0x00000400) != 0)) {
13202 result.minimizationAlgorithm_ = minimizationAlgorithm_;
13203 to_bitField0_ |= 0x00000400;
13204 }
13205 if (((from_bitField0_ & 0x00000800) != 0)) {
13206 result.binaryMinimizationAlgorithm_ = binaryMinimizationAlgorithm_;
13207 to_bitField0_ |= 0x00000800;
13208 }
13209 if (((from_bitField0_ & 0x00001000) != 0)) {
13210 result.subsumptionDuringConflictAnalysis_ = subsumptionDuringConflictAnalysis_;
13211 to_bitField0_ |= 0x00001000;
13212 }
13213 if (((from_bitField0_ & 0x00002000) != 0)) {
13214 result.clauseCleanupPeriod_ = clauseCleanupPeriod_;
13215 to_bitField0_ |= 0x00002000;
13216 }
13217 if (((from_bitField0_ & 0x00004000) != 0)) {
13218 result.clauseCleanupTarget_ = clauseCleanupTarget_;
13219 to_bitField0_ |= 0x00004000;
13220 }
13221 if (((from_bitField0_ & 0x00008000) != 0)) {
13222 result.clauseCleanupRatio_ = clauseCleanupRatio_;
13223 to_bitField0_ |= 0x00008000;
13224 }
13225 if (((from_bitField0_ & 0x00010000) != 0)) {
13226 result.clauseCleanupProtection_ = clauseCleanupProtection_;
13227 to_bitField0_ |= 0x00010000;
13228 }
13229 if (((from_bitField0_ & 0x00020000) != 0)) {
13230 result.clauseCleanupLbdBound_ = clauseCleanupLbdBound_;
13231 to_bitField0_ |= 0x00020000;
13232 }
13233 if (((from_bitField0_ & 0x00040000) != 0)) {
13234 result.clauseCleanupOrdering_ = clauseCleanupOrdering_;
13235 to_bitField0_ |= 0x00040000;
13236 }
13237 if (((from_bitField0_ & 0x00080000) != 0)) {
13238 result.pbCleanupIncrement_ = pbCleanupIncrement_;
13239 to_bitField0_ |= 0x00080000;
13240 }
13241 if (((from_bitField0_ & 0x00100000) != 0)) {
13242 result.pbCleanupRatio_ = pbCleanupRatio_;
13243 to_bitField0_ |= 0x00100000;
13244 }
13245 if (((from_bitField0_ & 0x00200000) != 0)) {
13246 result.minimizeWithPropagationRestartPeriod_ = minimizeWithPropagationRestartPeriod_;
13247 to_bitField0_ |= 0x00200000;
13248 }
13249 if (((from_bitField0_ & 0x00400000) != 0)) {
13250 result.minimizeWithPropagationNumDecisions_ = minimizeWithPropagationNumDecisions_;
13251 to_bitField0_ |= 0x00400000;
13252 }
13253 if (((from_bitField0_ & 0x00800000) != 0)) {
13254 result.variableActivityDecay_ = variableActivityDecay_;
13255 to_bitField0_ |= 0x00800000;
13256 }
13257 if (((from_bitField0_ & 0x01000000) != 0)) {
13258 result.maxVariableActivityValue_ = maxVariableActivityValue_;
13259 to_bitField0_ |= 0x01000000;
13260 }
13261 if (((from_bitField0_ & 0x02000000) != 0)) {
13262 result.glucoseMaxDecay_ = glucoseMaxDecay_;
13263 to_bitField0_ |= 0x02000000;
13264 }
13265 if (((from_bitField0_ & 0x04000000) != 0)) {
13266 result.glucoseDecayIncrement_ = glucoseDecayIncrement_;
13267 to_bitField0_ |= 0x04000000;
13268 }
13269 if (((from_bitField0_ & 0x08000000) != 0)) {
13270 result.glucoseDecayIncrementPeriod_ = glucoseDecayIncrementPeriod_;
13271 to_bitField0_ |= 0x08000000;
13272 }
13273 if (((from_bitField0_ & 0x10000000) != 0)) {
13274 result.clauseActivityDecay_ = clauseActivityDecay_;
13275 to_bitField0_ |= 0x10000000;
13276 }
13277 if (((from_bitField0_ & 0x20000000) != 0)) {
13278 result.maxClauseActivityValue_ = maxClauseActivityValue_;
13279 to_bitField0_ |= 0x20000000;
13280 }
13281 if (((from_bitField0_ & 0x80000000) != 0)) {
13282 result.defaultRestartAlgorithms_ = defaultRestartAlgorithms_;
13283 to_bitField0_ |= 0x40000000;
13284 }
13285 result.bitField0_ |= to_bitField0_;
13286 }
13287
13288 private void buildPartial1(com.google.ortools.sat.SatParameters result) {
13289 int from_bitField1_ = bitField1_;
13290 int to_bitField0_ = 0;
13291 if (((from_bitField1_ & 0x00000001) != 0)) {
13292 result.restartPeriod_ = restartPeriod_;
13293 to_bitField0_ |= 0x80000000;
13294 }
13295 int to_bitField1_ = 0;
13296 if (((from_bitField1_ & 0x00000002) != 0)) {
13297 result.restartRunningWindowSize_ = restartRunningWindowSize_;
13298 to_bitField1_ |= 0x00000001;
13299 }
13300 if (((from_bitField1_ & 0x00000004) != 0)) {
13301 result.restartDlAverageRatio_ = restartDlAverageRatio_;
13302 to_bitField1_ |= 0x00000002;
13303 }
13304 if (((from_bitField1_ & 0x00000008) != 0)) {
13305 result.restartLbdAverageRatio_ = restartLbdAverageRatio_;
13306 to_bitField1_ |= 0x00000004;
13307 }
13308 if (((from_bitField1_ & 0x00000010) != 0)) {
13309 result.useBlockingRestart_ = useBlockingRestart_;
13310 to_bitField1_ |= 0x00000008;
13311 }
13312 if (((from_bitField1_ & 0x00000020) != 0)) {
13313 result.blockingRestartWindowSize_ = blockingRestartWindowSize_;
13314 to_bitField1_ |= 0x00000010;
13315 }
13316 if (((from_bitField1_ & 0x00000040) != 0)) {
13317 result.blockingRestartMultiplier_ = blockingRestartMultiplier_;
13318 to_bitField1_ |= 0x00000020;
13319 }
13320 if (((from_bitField1_ & 0x00000080) != 0)) {
13321 result.numConflictsBeforeStrategyChanges_ = numConflictsBeforeStrategyChanges_;
13322 to_bitField1_ |= 0x00000040;
13323 }
13324 if (((from_bitField1_ & 0x00000100) != 0)) {
13325 result.strategyChangeIncreaseRatio_ = strategyChangeIncreaseRatio_;
13326 to_bitField1_ |= 0x00000080;
13327 }
13328 if (((from_bitField1_ & 0x00000200) != 0)) {
13329 result.maxTimeInSeconds_ = maxTimeInSeconds_;
13330 to_bitField1_ |= 0x00000100;
13331 }
13332 if (((from_bitField1_ & 0x00000400) != 0)) {
13333 result.maxDeterministicTime_ = maxDeterministicTime_;
13334 to_bitField1_ |= 0x00000200;
13335 }
13336 if (((from_bitField1_ & 0x00000800) != 0)) {
13337 result.maxNumberOfConflicts_ = maxNumberOfConflicts_;
13338 to_bitField1_ |= 0x00000400;
13339 }
13340 if (((from_bitField1_ & 0x00001000) != 0)) {
13341 result.maxMemoryInMb_ = maxMemoryInMb_;
13342 to_bitField1_ |= 0x00000800;
13343 }
13344 if (((from_bitField1_ & 0x00002000) != 0)) {
13345 result.absoluteGapLimit_ = absoluteGapLimit_;
13346 to_bitField1_ |= 0x00001000;
13347 }
13348 if (((from_bitField1_ & 0x00004000) != 0)) {
13349 result.relativeGapLimit_ = relativeGapLimit_;
13350 to_bitField1_ |= 0x00002000;
13351 }
13352 if (((from_bitField1_ & 0x00008000) != 0)) {
13353 result.randomSeed_ = randomSeed_;
13354 to_bitField1_ |= 0x00004000;
13355 }
13356 if (((from_bitField1_ & 0x00010000) != 0)) {
13357 result.permuteVariableRandomly_ = permuteVariableRandomly_;
13358 to_bitField1_ |= 0x00008000;
13359 }
13360 if (((from_bitField1_ & 0x00020000) != 0)) {
13361 result.permutePresolveConstraintOrder_ = permutePresolveConstraintOrder_;
13362 to_bitField1_ |= 0x00010000;
13363 }
13364 if (((from_bitField1_ & 0x00040000) != 0)) {
13365 result.useAbslRandom_ = useAbslRandom_;
13366 to_bitField1_ |= 0x00020000;
13367 }
13368 if (((from_bitField1_ & 0x00080000) != 0)) {
13369 result.logSearchProgress_ = logSearchProgress_;
13370 to_bitField1_ |= 0x00040000;
13371 }
13372 if (((from_bitField1_ & 0x00100000) != 0)) {
13373 result.logFrequencyInSeconds_ = logFrequencyInSeconds_;
13374 to_bitField1_ |= 0x00080000;
13375 }
13376 if (((from_bitField1_ & 0x00200000) != 0)) {
13377 result.modelReductionLogFrequencyInSeconds_ = modelReductionLogFrequencyInSeconds_;
13378 to_bitField1_ |= 0x00100000;
13379 }
13380 if (((from_bitField1_ & 0x00400000) != 0)) {
13381 result.logSubsolverStatistics_ = logSubsolverStatistics_;
13382 to_bitField1_ |= 0x00200000;
13383 }
13384 if (((from_bitField1_ & 0x00800000) != 0)) {
13385 result.logPrefix_ = logPrefix_;
13386 to_bitField1_ |= 0x00400000;
13387 }
13388 if (((from_bitField1_ & 0x01000000) != 0)) {
13389 result.logToStdout_ = logToStdout_;
13390 to_bitField1_ |= 0x00800000;
13391 }
13392 if (((from_bitField1_ & 0x02000000) != 0)) {
13393 result.logToResponse_ = logToResponse_;
13394 to_bitField1_ |= 0x01000000;
13395 }
13396 if (((from_bitField1_ & 0x04000000) != 0)) {
13397 result.usePbResolution_ = usePbResolution_;
13398 to_bitField1_ |= 0x02000000;
13399 }
13400 if (((from_bitField1_ & 0x08000000) != 0)) {
13401 result.minimizeReductionDuringPbResolution_ = minimizeReductionDuringPbResolution_;
13402 to_bitField1_ |= 0x04000000;
13403 }
13404 if (((from_bitField1_ & 0x10000000) != 0)) {
13405 result.countAssumptionLevelsInLbd_ = countAssumptionLevelsInLbd_;
13406 to_bitField1_ |= 0x08000000;
13407 }
13408 if (((from_bitField1_ & 0x20000000) != 0)) {
13409 result.presolveBveThreshold_ = presolveBveThreshold_;
13410 to_bitField1_ |= 0x10000000;
13411 }
13412 if (((from_bitField1_ & 0x40000000) != 0)) {
13413 result.presolveBveClauseWeight_ = presolveBveClauseWeight_;
13414 to_bitField1_ |= 0x20000000;
13415 }
13416 if (((from_bitField1_ & 0x80000000) != 0)) {
13417 result.probingDeterministicTimeLimit_ = probingDeterministicTimeLimit_;
13418 to_bitField1_ |= 0x40000000;
13419 }
13420 result.bitField0_ |= to_bitField0_;
13421 result.bitField1_ |= to_bitField1_;
13422 }
13423
13424 private void buildPartial2(com.google.ortools.sat.SatParameters result) {
13425 int from_bitField2_ = bitField2_;
13426 int to_bitField1_ = 0;
13427 if (((from_bitField2_ & 0x00000001) != 0)) {
13428 result.presolveProbingDeterministicTimeLimit_ = presolveProbingDeterministicTimeLimit_;
13429 to_bitField1_ |= 0x80000000;
13430 }
13431 int to_bitField2_ = 0;
13432 if (((from_bitField2_ & 0x00000002) != 0)) {
13433 result.presolveBlockedClause_ = presolveBlockedClause_;
13434 to_bitField2_ |= 0x00000001;
13435 }
13436 if (((from_bitField2_ & 0x00000004) != 0)) {
13437 result.presolveUseBva_ = presolveUseBva_;
13438 to_bitField2_ |= 0x00000002;
13439 }
13440 if (((from_bitField2_ & 0x00000008) != 0)) {
13441 result.presolveBvaThreshold_ = presolveBvaThreshold_;
13442 to_bitField2_ |= 0x00000004;
13443 }
13444 if (((from_bitField2_ & 0x00000010) != 0)) {
13445 result.maxPresolveIterations_ = maxPresolveIterations_;
13446 to_bitField2_ |= 0x00000008;
13447 }
13448 if (((from_bitField2_ & 0x00000020) != 0)) {
13449 result.cpModelPresolve_ = cpModelPresolve_;
13450 to_bitField2_ |= 0x00000010;
13451 }
13452 if (((from_bitField2_ & 0x00000040) != 0)) {
13453 result.cpModelProbingLevel_ = cpModelProbingLevel_;
13454 to_bitField2_ |= 0x00000020;
13455 }
13456 if (((from_bitField2_ & 0x00000080) != 0)) {
13457 result.cpModelUseSatPresolve_ = cpModelUseSatPresolve_;
13458 to_bitField2_ |= 0x00000040;
13459 }
13460 if (((from_bitField2_ & 0x00000100) != 0)) {
13461 result.useSatInprocessing_ = useSatInprocessing_;
13462 to_bitField2_ |= 0x00000080;
13463 }
13464 if (((from_bitField2_ & 0x00000200) != 0)) {
13465 result.detectTableWithCost_ = detectTableWithCost_;
13466 to_bitField2_ |= 0x00000100;
13467 }
13468 if (((from_bitField2_ & 0x00000400) != 0)) {
13469 result.tableCompressionLevel_ = tableCompressionLevel_;
13470 to_bitField2_ |= 0x00000200;
13471 }
13472 if (((from_bitField2_ & 0x00000800) != 0)) {
13473 result.expandAlldiffConstraints_ = expandAlldiffConstraints_;
13474 to_bitField2_ |= 0x00000400;
13475 }
13476 if (((from_bitField2_ & 0x00001000) != 0)) {
13477 result.expandReservoirConstraints_ = expandReservoirConstraints_;
13478 to_bitField2_ |= 0x00000800;
13479 }
13480 if (((from_bitField2_ & 0x00002000) != 0)) {
13481 result.disableConstraintExpansion_ = disableConstraintExpansion_;
13482 to_bitField2_ |= 0x00001000;
13483 }
13484 if (((from_bitField2_ & 0x00004000) != 0)) {
13485 result.encodeComplexLinearConstraintWithInteger_ = encodeComplexLinearConstraintWithInteger_;
13486 to_bitField2_ |= 0x00002000;
13487 }
13488 if (((from_bitField2_ & 0x00008000) != 0)) {
13489 result.mergeNoOverlapWorkLimit_ = mergeNoOverlapWorkLimit_;
13490 to_bitField2_ |= 0x00004000;
13491 }
13492 if (((from_bitField2_ & 0x00010000) != 0)) {
13493 result.mergeAtMostOneWorkLimit_ = mergeAtMostOneWorkLimit_;
13494 to_bitField2_ |= 0x00008000;
13495 }
13496 if (((from_bitField2_ & 0x00020000) != 0)) {
13497 result.presolveSubstitutionLevel_ = presolveSubstitutionLevel_;
13498 to_bitField2_ |= 0x00010000;
13499 }
13500 if (((from_bitField2_ & 0x00040000) != 0)) {
13501 result.presolveExtractIntegerEnforcement_ = presolveExtractIntegerEnforcement_;
13502 to_bitField2_ |= 0x00020000;
13503 }
13504 if (((from_bitField2_ & 0x00080000) != 0)) {
13505 result.presolveInclusionWorkLimit_ = presolveInclusionWorkLimit_;
13506 to_bitField2_ |= 0x00040000;
13507 }
13508 if (((from_bitField2_ & 0x00100000) != 0)) {
13509 result.ignoreNames_ = ignoreNames_;
13510 to_bitField2_ |= 0x00080000;
13511 }
13512 if (((from_bitField2_ & 0x00200000) != 0)) {
13513 result.inferAllDiffs_ = inferAllDiffs_;
13514 to_bitField2_ |= 0x00100000;
13515 }
13516 if (((from_bitField2_ & 0x00400000) != 0)) {
13517 result.findBigLinearOverlap_ = findBigLinearOverlap_;
13518 to_bitField2_ |= 0x00200000;
13519 }
13520 if (((from_bitField2_ & 0x00800000) != 0)) {
13521 result.numWorkers_ = numWorkers_;
13522 to_bitField2_ |= 0x00400000;
13523 }
13524 if (((from_bitField2_ & 0x01000000) != 0)) {
13525 result.numSearchWorkers_ = numSearchWorkers_;
13526 to_bitField2_ |= 0x00800000;
13527 }
13528 if (((from_bitField2_ & 0x02000000) != 0)) {
13529 result.minNumLnsWorkers_ = minNumLnsWorkers_;
13530 to_bitField2_ |= 0x01000000;
13531 }
13532 if (((from_bitField2_ & 0x04000000) != 0)) {
13533 subsolvers_.makeImmutable();
13534 result.subsolvers_ = subsolvers_;
13535 }
13536 if (((from_bitField2_ & 0x08000000) != 0)) {
13537 extraSubsolvers_.makeImmutable();
13538 result.extraSubsolvers_ = extraSubsolvers_;
13539 }
13540 if (((from_bitField2_ & 0x10000000) != 0)) {
13541 ignoreSubsolvers_.makeImmutable();
13542 result.ignoreSubsolvers_ = ignoreSubsolvers_;
13543 }
13544 if (((from_bitField2_ & 0x40000000) != 0)) {
13545 result.interleaveSearch_ = interleaveSearch_;
13546 to_bitField2_ |= 0x02000000;
13547 }
13548 if (((from_bitField2_ & 0x80000000) != 0)) {
13549 result.interleaveBatchSize_ = interleaveBatchSize_;
13550 to_bitField2_ |= 0x04000000;
13551 }
13552 result.bitField1_ |= to_bitField1_;
13553 result.bitField2_ |= to_bitField2_;
13554 }
13555
13556 private void buildPartial3(com.google.ortools.sat.SatParameters result) {
13557 int from_bitField3_ = bitField3_;
13558 int to_bitField2_ = 0;
13559 if (((from_bitField3_ & 0x00000001) != 0)) {
13560 result.shareObjectiveBounds_ = shareObjectiveBounds_;
13561 to_bitField2_ |= 0x08000000;
13562 }
13563 if (((from_bitField3_ & 0x00000002) != 0)) {
13564 result.shareLevelZeroBounds_ = shareLevelZeroBounds_;
13565 to_bitField2_ |= 0x10000000;
13566 }
13567 if (((from_bitField3_ & 0x00000004) != 0)) {
13568 result.shareBinaryClauses_ = shareBinaryClauses_;
13569 to_bitField2_ |= 0x20000000;
13570 }
13571 if (((from_bitField3_ & 0x00000008) != 0)) {
13572 result.debugPostsolveWithFullSolver_ = debugPostsolveWithFullSolver_;
13573 to_bitField2_ |= 0x40000000;
13574 }
13575 if (((from_bitField3_ & 0x00000010) != 0)) {
13576 result.debugMaxNumPresolveOperations_ = debugMaxNumPresolveOperations_;
13577 to_bitField2_ |= 0x80000000;
13578 }
13579 int to_bitField3_ = 0;
13580 if (((from_bitField3_ & 0x00000020) != 0)) {
13581 result.debugCrashOnBadHint_ = debugCrashOnBadHint_;
13582 to_bitField3_ |= 0x00000001;
13583 }
13584 if (((from_bitField3_ & 0x00000040) != 0)) {
13585 result.useOptimizationHints_ = useOptimizationHints_;
13586 to_bitField3_ |= 0x00000002;
13587 }
13588 if (((from_bitField3_ & 0x00000080) != 0)) {
13589 result.minimizeCore_ = minimizeCore_;
13590 to_bitField3_ |= 0x00000004;
13591 }
13592 if (((from_bitField3_ & 0x00000100) != 0)) {
13593 result.findMultipleCores_ = findMultipleCores_;
13594 to_bitField3_ |= 0x00000008;
13595 }
13596 if (((from_bitField3_ & 0x00000200) != 0)) {
13597 result.coverOptimization_ = coverOptimization_;
13598 to_bitField3_ |= 0x00000010;
13599 }
13600 if (((from_bitField3_ & 0x00000400) != 0)) {
13601 result.maxSatAssumptionOrder_ = maxSatAssumptionOrder_;
13602 to_bitField3_ |= 0x00000020;
13603 }
13604 if (((from_bitField3_ & 0x00000800) != 0)) {
13605 result.maxSatReverseAssumptionOrder_ = maxSatReverseAssumptionOrder_;
13606 to_bitField3_ |= 0x00000040;
13607 }
13608 if (((from_bitField3_ & 0x00001000) != 0)) {
13609 result.maxSatStratification_ = maxSatStratification_;
13610 to_bitField3_ |= 0x00000080;
13611 }
13612 if (((from_bitField3_ & 0x00002000) != 0)) {
13613 result.propagationLoopDetectionFactor_ = propagationLoopDetectionFactor_;
13614 to_bitField3_ |= 0x00000100;
13615 }
13616 if (((from_bitField3_ & 0x00004000) != 0)) {
13617 result.usePrecedencesInDisjunctiveConstraint_ = usePrecedencesInDisjunctiveConstraint_;
13618 to_bitField3_ |= 0x00000200;
13619 }
13620 if (((from_bitField3_ & 0x00008000) != 0)) {
13621 result.maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = maxSizeToCreatePrecedenceLiteralsInDisjunctive_;
13622 to_bitField3_ |= 0x00000400;
13623 }
13624 if (((from_bitField3_ & 0x00010000) != 0)) {
13625 result.useStrongPropagationInDisjunctive_ = useStrongPropagationInDisjunctive_;
13626 to_bitField3_ |= 0x00000800;
13627 }
13628 if (((from_bitField3_ & 0x00020000) != 0)) {
13629 result.useOverloadCheckerInCumulative_ = useOverloadCheckerInCumulative_;
13630 to_bitField3_ |= 0x00001000;
13631 }
13632 if (((from_bitField3_ & 0x00040000) != 0)) {
13633 result.useTimetableEdgeFindingInCumulative_ = useTimetableEdgeFindingInCumulative_;
13634 to_bitField3_ |= 0x00002000;
13635 }
13636 if (((from_bitField3_ & 0x00080000) != 0)) {
13637 result.useHardPrecedencesInCumulative_ = useHardPrecedencesInCumulative_;
13638 to_bitField3_ |= 0x00004000;
13639 }
13640 if (((from_bitField3_ & 0x00100000) != 0)) {
13641 result.exploitAllPrecedences_ = exploitAllPrecedences_;
13642 to_bitField3_ |= 0x00008000;
13643 }
13644 if (((from_bitField3_ & 0x00200000) != 0)) {
13645 result.useDisjunctiveConstraintInCumulative_ = useDisjunctiveConstraintInCumulative_;
13646 to_bitField3_ |= 0x00010000;
13647 }
13648 if (((from_bitField3_ & 0x00400000) != 0)) {
13649 result.useTimetablingInNoOverlap2D_ = useTimetablingInNoOverlap2D_;
13650 to_bitField3_ |= 0x00020000;
13651 }
13652 if (((from_bitField3_ & 0x00800000) != 0)) {
13653 result.useEnergeticReasoningInNoOverlap2D_ = useEnergeticReasoningInNoOverlap2D_;
13654 to_bitField3_ |= 0x00040000;
13655 }
13656 if (((from_bitField3_ & 0x01000000) != 0)) {
13657 result.usePairwiseReasoningInNoOverlap2D_ = usePairwiseReasoningInNoOverlap2D_;
13658 to_bitField3_ |= 0x00080000;
13659 }
13660 if (((from_bitField3_ & 0x02000000) != 0)) {
13661 result.useDualSchedulingHeuristics_ = useDualSchedulingHeuristics_;
13662 to_bitField3_ |= 0x00100000;
13663 }
13664 if (((from_bitField3_ & 0x04000000) != 0)) {
13665 result.linearizationLevel_ = linearizationLevel_;
13666 to_bitField3_ |= 0x00200000;
13667 }
13668 if (((from_bitField3_ & 0x08000000) != 0)) {
13669 result.booleanEncodingLevel_ = booleanEncodingLevel_;
13670 to_bitField3_ |= 0x00400000;
13671 }
13672 if (((from_bitField3_ & 0x10000000) != 0)) {
13673 result.maxDomainSizeWhenEncodingEqNeqConstraints_ = maxDomainSizeWhenEncodingEqNeqConstraints_;
13674 to_bitField3_ |= 0x00800000;
13675 }
13676 if (((from_bitField3_ & 0x20000000) != 0)) {
13677 result.maxNumCuts_ = maxNumCuts_;
13678 to_bitField3_ |= 0x01000000;
13679 }
13680 if (((from_bitField3_ & 0x40000000) != 0)) {
13681 result.cutLevel_ = cutLevel_;
13682 to_bitField3_ |= 0x02000000;
13683 }
13684 if (((from_bitField3_ & 0x80000000) != 0)) {
13685 result.onlyAddCutsAtLevelZero_ = onlyAddCutsAtLevelZero_;
13686 to_bitField3_ |= 0x04000000;
13687 }
13688 result.bitField2_ |= to_bitField2_;
13689 result.bitField3_ |= to_bitField3_;
13690 }
13691
13692 private void buildPartial4(com.google.ortools.sat.SatParameters result) {
13693 int from_bitField4_ = bitField4_;
13694 int to_bitField3_ = 0;
13695 if (((from_bitField4_ & 0x00000001) != 0)) {
13696 result.addObjectiveCut_ = addObjectiveCut_;
13697 to_bitField3_ |= 0x08000000;
13698 }
13699 if (((from_bitField4_ & 0x00000002) != 0)) {
13700 result.addCgCuts_ = addCgCuts_;
13701 to_bitField3_ |= 0x10000000;
13702 }
13703 if (((from_bitField4_ & 0x00000004) != 0)) {
13704 result.addMirCuts_ = addMirCuts_;
13705 to_bitField3_ |= 0x20000000;
13706 }
13707 if (((from_bitField4_ & 0x00000008) != 0)) {
13708 result.addZeroHalfCuts_ = addZeroHalfCuts_;
13709 to_bitField3_ |= 0x40000000;
13710 }
13711 if (((from_bitField4_ & 0x00000010) != 0)) {
13712 result.addCliqueCuts_ = addCliqueCuts_;
13713 to_bitField3_ |= 0x80000000;
13714 }
13715 int to_bitField4_ = 0;
13716 if (((from_bitField4_ & 0x00000020) != 0)) {
13717 result.maxAllDiffCutSize_ = maxAllDiffCutSize_;
13718 to_bitField4_ |= 0x00000001;
13719 }
13720 if (((from_bitField4_ & 0x00000040) != 0)) {
13721 result.addLinMaxCuts_ = addLinMaxCuts_;
13722 to_bitField4_ |= 0x00000002;
13723 }
13724 if (((from_bitField4_ & 0x00000080) != 0)) {
13725 result.maxIntegerRoundingScaling_ = maxIntegerRoundingScaling_;
13726 to_bitField4_ |= 0x00000004;
13727 }
13728 if (((from_bitField4_ & 0x00000100) != 0)) {
13729 result.addLpConstraintsLazily_ = addLpConstraintsLazily_;
13730 to_bitField4_ |= 0x00000008;
13731 }
13732 if (((from_bitField4_ & 0x00000200) != 0)) {
13733 result.rootLpIterations_ = rootLpIterations_;
13734 to_bitField4_ |= 0x00000010;
13735 }
13736 if (((from_bitField4_ & 0x00000400) != 0)) {
13737 result.minOrthogonalityForLpConstraints_ = minOrthogonalityForLpConstraints_;
13738 to_bitField4_ |= 0x00000020;
13739 }
13740 if (((from_bitField4_ & 0x00000800) != 0)) {
13741 result.maxCutRoundsAtLevelZero_ = maxCutRoundsAtLevelZero_;
13742 to_bitField4_ |= 0x00000040;
13743 }
13744 if (((from_bitField4_ & 0x00001000) != 0)) {
13745 result.maxConsecutiveInactiveCount_ = maxConsecutiveInactiveCount_;
13746 to_bitField4_ |= 0x00000080;
13747 }
13748 if (((from_bitField4_ & 0x00002000) != 0)) {
13749 result.cutMaxActiveCountValue_ = cutMaxActiveCountValue_;
13750 to_bitField4_ |= 0x00000100;
13751 }
13752 if (((from_bitField4_ & 0x00004000) != 0)) {
13753 result.cutActiveCountDecay_ = cutActiveCountDecay_;
13754 to_bitField4_ |= 0x00000200;
13755 }
13756 if (((from_bitField4_ & 0x00008000) != 0)) {
13757 result.cutCleanupTarget_ = cutCleanupTarget_;
13758 to_bitField4_ |= 0x00000400;
13759 }
13760 if (((from_bitField4_ & 0x00010000) != 0)) {
13761 result.newConstraintsBatchSize_ = newConstraintsBatchSize_;
13762 to_bitField4_ |= 0x00000800;
13763 }
13764 if (((from_bitField4_ & 0x00020000) != 0)) {
13765 result.searchBranching_ = searchBranching_;
13766 to_bitField4_ |= 0x00001000;
13767 }
13768 if (((from_bitField4_ & 0x00040000) != 0)) {
13769 result.hintConflictLimit_ = hintConflictLimit_;
13770 to_bitField4_ |= 0x00002000;
13771 }
13772 if (((from_bitField4_ & 0x00080000) != 0)) {
13773 result.repairHint_ = repairHint_;
13774 to_bitField4_ |= 0x00004000;
13775 }
13776 if (((from_bitField4_ & 0x00100000) != 0)) {
13777 result.fixVariablesToTheirHintedValue_ = fixVariablesToTheirHintedValue_;
13778 to_bitField4_ |= 0x00008000;
13779 }
13780 if (((from_bitField4_ & 0x00200000) != 0)) {
13781 result.exploitIntegerLpSolution_ = exploitIntegerLpSolution_;
13782 to_bitField4_ |= 0x00010000;
13783 }
13784 if (((from_bitField4_ & 0x00400000) != 0)) {
13785 result.exploitAllLpSolution_ = exploitAllLpSolution_;
13786 to_bitField4_ |= 0x00020000;
13787 }
13788 if (((from_bitField4_ & 0x00800000) != 0)) {
13789 result.exploitBestSolution_ = exploitBestSolution_;
13790 to_bitField4_ |= 0x00040000;
13791 }
13792 if (((from_bitField4_ & 0x01000000) != 0)) {
13793 result.exploitRelaxationSolution_ = exploitRelaxationSolution_;
13794 to_bitField4_ |= 0x00080000;
13795 }
13796 if (((from_bitField4_ & 0x02000000) != 0)) {
13797 result.exploitObjective_ = exploitObjective_;
13798 to_bitField4_ |= 0x00100000;
13799 }
13800 if (((from_bitField4_ & 0x04000000) != 0)) {
13801 result.probingPeriodAtRoot_ = probingPeriodAtRoot_;
13802 to_bitField4_ |= 0x00200000;
13803 }
13804 if (((from_bitField4_ & 0x08000000) != 0)) {
13805 result.useProbingSearch_ = useProbingSearch_;
13806 to_bitField4_ |= 0x00400000;
13807 }
13808 if (((from_bitField4_ & 0x10000000) != 0)) {
13809 result.useShavingInProbingSearch_ = useShavingInProbingSearch_;
13810 to_bitField4_ |= 0x00800000;
13811 }
13812 if (((from_bitField4_ & 0x20000000) != 0)) {
13813 result.shavingSearchDeterministicTime_ = shavingSearchDeterministicTime_;
13814 to_bitField4_ |= 0x01000000;
13815 }
13816 if (((from_bitField4_ & 0x40000000) != 0)) {
13817 result.useObjectiveLbSearch_ = useObjectiveLbSearch_;
13818 to_bitField4_ |= 0x02000000;
13819 }
13820 if (((from_bitField4_ & 0x80000000) != 0)) {
13821 result.useObjectiveShavingSearch_ = useObjectiveShavingSearch_;
13822 to_bitField4_ |= 0x04000000;
13823 }
13824 result.bitField3_ |= to_bitField3_;
13825 result.bitField4_ |= to_bitField4_;
13826 }
13827
13828 private void buildPartial5(com.google.ortools.sat.SatParameters result) {
13829 int from_bitField5_ = bitField5_;
13830 int to_bitField4_ = 0;
13831 if (((from_bitField5_ & 0x00000001) != 0)) {
13832 result.pseudoCostReliabilityThreshold_ = pseudoCostReliabilityThreshold_;
13833 to_bitField4_ |= 0x08000000;
13834 }
13835 if (((from_bitField5_ & 0x00000002) != 0)) {
13836 result.optimizeWithCore_ = optimizeWithCore_;
13837 to_bitField4_ |= 0x10000000;
13838 }
13839 if (((from_bitField5_ & 0x00000004) != 0)) {
13840 result.optimizeWithLbTreeSearch_ = optimizeWithLbTreeSearch_;
13841 to_bitField4_ |= 0x20000000;
13842 }
13843 if (((from_bitField5_ & 0x00000008) != 0)) {
13844 result.binarySearchNumConflicts_ = binarySearchNumConflicts_;
13845 to_bitField4_ |= 0x40000000;
13846 }
13847 if (((from_bitField5_ & 0x00000010) != 0)) {
13848 result.optimizeWithMaxHs_ = optimizeWithMaxHs_;
13849 to_bitField4_ |= 0x80000000;
13850 }
13851 int to_bitField5_ = 0;
13852 if (((from_bitField5_ & 0x00000020) != 0)) {
13853 result.testFeasibilityJump_ = testFeasibilityJump_;
13854 to_bitField5_ |= 0x00000001;
13855 }
13856 if (((from_bitField5_ & 0x00000040) != 0)) {
13857 result.feasibilityJumpMaxNumValuesScanned_ = feasibilityJumpMaxNumValuesScanned_;
13858 to_bitField5_ |= 0x00000002;
13859 }
13860 if (((from_bitField5_ & 0x00000080) != 0)) {
13861 result.feasibilityJumpProtectLinearFeasibility_ = feasibilityJumpProtectLinearFeasibility_;
13862 to_bitField5_ |= 0x00000004;
13863 }
13864 if (((from_bitField5_ & 0x00000100) != 0)) {
13865 result.feasibilityJumpDecay_ = feasibilityJumpDecay_;
13866 to_bitField5_ |= 0x00000008;
13867 }
13868 if (((from_bitField5_ & 0x00000200) != 0)) {
13869 result.feasibilityJumpVarRandomizationProbability_ = feasibilityJumpVarRandomizationProbability_;
13870 to_bitField5_ |= 0x00000010;
13871 }
13872 if (((from_bitField5_ & 0x00000400) != 0)) {
13873 result.feasibilityJumpVarPerburbationRangeRatio_ = feasibilityJumpVarPerburbationRangeRatio_;
13874 to_bitField5_ |= 0x00000020;
13875 }
13876 if (((from_bitField5_ & 0x00000800) != 0)) {
13877 result.feasibilityJumpEnableRestarts_ = feasibilityJumpEnableRestarts_;
13878 to_bitField5_ |= 0x00000040;
13879 }
13880 if (((from_bitField5_ & 0x00001000) != 0)) {
13881 result.numViolationLs_ = numViolationLs_;
13882 to_bitField5_ |= 0x00000080;
13883 }
13884 if (((from_bitField5_ & 0x00002000) != 0)) {
13885 result.violationLsPerturbationPeriod_ = violationLsPerturbationPeriod_;
13886 to_bitField5_ |= 0x00000100;
13887 }
13888 if (((from_bitField5_ & 0x00004000) != 0)) {
13889 result.sharedTreeNumWorkers_ = sharedTreeNumWorkers_;
13890 to_bitField5_ |= 0x00000200;
13891 }
13892 if (((from_bitField5_ & 0x00008000) != 0)) {
13893 result.useSharedTreeSearch_ = useSharedTreeSearch_;
13894 to_bitField5_ |= 0x00000400;
13895 }
13896 if (((from_bitField5_ & 0x00010000) != 0)) {
13897 result.sharedTreeWorkerObjectiveSplitProbability_ = sharedTreeWorkerObjectiveSplitProbability_;
13898 to_bitField5_ |= 0x00000800;
13899 }
13900 if (((from_bitField5_ & 0x00020000) != 0)) {
13901 result.sharedTreeMaxNodesPerWorker_ = sharedTreeMaxNodesPerWorker_;
13902 to_bitField5_ |= 0x00001000;
13903 }
13904 if (((from_bitField5_ & 0x00040000) != 0)) {
13905 result.sharedTreeSplitStrategy_ = sharedTreeSplitStrategy_;
13906 to_bitField5_ |= 0x00002000;
13907 }
13908 if (((from_bitField5_ & 0x00080000) != 0)) {
13909 result.enumerateAllSolutions_ = enumerateAllSolutions_;
13910 to_bitField5_ |= 0x00004000;
13911 }
13912 if (((from_bitField5_ & 0x00100000) != 0)) {
13913 result.keepAllFeasibleSolutionsInPresolve_ = keepAllFeasibleSolutionsInPresolve_;
13914 to_bitField5_ |= 0x00008000;
13915 }
13916 if (((from_bitField5_ & 0x00200000) != 0)) {
13917 result.fillTightenedDomainsInResponse_ = fillTightenedDomainsInResponse_;
13918 to_bitField5_ |= 0x00010000;
13919 }
13920 if (((from_bitField5_ & 0x00400000) != 0)) {
13921 result.fillAdditionalSolutionsInResponse_ = fillAdditionalSolutionsInResponse_;
13922 to_bitField5_ |= 0x00020000;
13923 }
13924 if (((from_bitField5_ & 0x00800000) != 0)) {
13925 result.instantiateAllVariables_ = instantiateAllVariables_;
13926 to_bitField5_ |= 0x00040000;
13927 }
13928 if (((from_bitField5_ & 0x01000000) != 0)) {
13929 result.autoDetectGreaterThanAtLeastOneOf_ = autoDetectGreaterThanAtLeastOneOf_;
13930 to_bitField5_ |= 0x00080000;
13931 }
13932 if (((from_bitField5_ & 0x02000000) != 0)) {
13933 result.stopAfterFirstSolution_ = stopAfterFirstSolution_;
13934 to_bitField5_ |= 0x00100000;
13935 }
13936 if (((from_bitField5_ & 0x04000000) != 0)) {
13937 result.stopAfterPresolve_ = stopAfterPresolve_;
13938 to_bitField5_ |= 0x00200000;
13939 }
13940 if (((from_bitField5_ & 0x08000000) != 0)) {
13941 result.stopAfterRootPropagation_ = stopAfterRootPropagation_;
13942 to_bitField5_ |= 0x00400000;
13943 }
13944 if (((from_bitField5_ & 0x10000000) != 0)) {
13945 result.useLnsOnly_ = useLnsOnly_;
13946 to_bitField5_ |= 0x00800000;
13947 }
13948 if (((from_bitField5_ & 0x20000000) != 0)) {
13949 result.solutionPoolSize_ = solutionPoolSize_;
13950 to_bitField5_ |= 0x01000000;
13951 }
13952 if (((from_bitField5_ & 0x40000000) != 0)) {
13953 result.useRinsLns_ = useRinsLns_;
13954 to_bitField5_ |= 0x02000000;
13955 }
13956 if (((from_bitField5_ & 0x80000000) != 0)) {
13957 result.useFeasibilityPump_ = useFeasibilityPump_;
13958 to_bitField5_ |= 0x04000000;
13959 }
13960 result.bitField4_ |= to_bitField4_;
13961 result.bitField5_ |= to_bitField5_;
13962 }
13963
13964 private void buildPartial6(com.google.ortools.sat.SatParameters result) {
13965 int from_bitField6_ = bitField6_;
13966 int to_bitField5_ = 0;
13967 if (((from_bitField6_ & 0x00000001) != 0)) {
13968 result.useLbRelaxLns_ = useLbRelaxLns_;
13969 to_bitField5_ |= 0x08000000;
13970 }
13971 if (((from_bitField6_ & 0x00000002) != 0)) {
13972 result.fpRounding_ = fpRounding_;
13973 to_bitField5_ |= 0x10000000;
13974 }
13975 if (((from_bitField6_ & 0x00000004) != 0)) {
13976 result.diversifyLnsParams_ = diversifyLnsParams_;
13977 to_bitField5_ |= 0x20000000;
13978 }
13979 if (((from_bitField6_ & 0x00000008) != 0)) {
13980 result.randomizeSearch_ = randomizeSearch_;
13981 to_bitField5_ |= 0x40000000;
13982 }
13983 if (((from_bitField6_ & 0x00000010) != 0)) {
13984 result.searchRandomizationTolerance_ = searchRandomizationTolerance_;
13985 to_bitField5_ |= 0x80000000;
13986 }
13987 int to_bitField6_ = 0;
13988 if (((from_bitField6_ & 0x00000020) != 0)) {
13989 result.useOptionalVariables_ = useOptionalVariables_;
13990 to_bitField6_ |= 0x00000001;
13991 }
13992 if (((from_bitField6_ & 0x00000040) != 0)) {
13993 result.useExactLpReason_ = useExactLpReason_;
13994 to_bitField6_ |= 0x00000002;
13995 }
13996 if (((from_bitField6_ & 0x00000080) != 0)) {
13997 result.useBranchingInLp_ = useBranchingInLp_;
13998 to_bitField6_ |= 0x00000004;
13999 }
14000 if (((from_bitField6_ & 0x00000100) != 0)) {
14001 result.useCombinedNoOverlap_ = useCombinedNoOverlap_;
14002 to_bitField6_ |= 0x00000008;
14003 }
14004 if (((from_bitField6_ & 0x00000200) != 0)) {
14005 result.catchSigintSignal_ = catchSigintSignal_;
14006 to_bitField6_ |= 0x00000010;
14007 }
14008 if (((from_bitField6_ & 0x00000400) != 0)) {
14009 result.useImpliedBounds_ = useImpliedBounds_;
14010 to_bitField6_ |= 0x00000020;
14011 }
14012 if (((from_bitField6_ & 0x00000800) != 0)) {
14013 result.polishLpSolution_ = polishLpSolution_;
14014 to_bitField6_ |= 0x00000040;
14015 }
14016 if (((from_bitField6_ & 0x00001000) != 0)) {
14017 result.convertIntervals_ = convertIntervals_;
14018 to_bitField6_ |= 0x00000080;
14019 }
14020 if (((from_bitField6_ & 0x00002000) != 0)) {
14021 result.symmetryLevel_ = symmetryLevel_;
14022 to_bitField6_ |= 0x00000100;
14023 }
14024 if (((from_bitField6_ & 0x00004000) != 0)) {
14025 result.newLinearPropagation_ = newLinearPropagation_;
14026 to_bitField6_ |= 0x00000200;
14027 }
14028 if (((from_bitField6_ & 0x00008000) != 0)) {
14029 result.linearSplitSize_ = linearSplitSize_;
14030 to_bitField6_ |= 0x00000400;
14031 }
14032 if (((from_bitField6_ & 0x00010000) != 0)) {
14033 result.mipMaxBound_ = mipMaxBound_;
14034 to_bitField6_ |= 0x00000800;
14035 }
14036 if (((from_bitField6_ & 0x00020000) != 0)) {
14037 result.mipVarScaling_ = mipVarScaling_;
14038 to_bitField6_ |= 0x00001000;
14039 }
14040 if (((from_bitField6_ & 0x00040000) != 0)) {
14041 result.mipScaleLargeDomain_ = mipScaleLargeDomain_;
14042 to_bitField6_ |= 0x00002000;
14043 }
14044 if (((from_bitField6_ & 0x00080000) != 0)) {
14045 result.mipAutomaticallyScaleVariables_ = mipAutomaticallyScaleVariables_;
14046 to_bitField6_ |= 0x00004000;
14047 }
14048 if (((from_bitField6_ & 0x00100000) != 0)) {
14049 result.onlySolveIp_ = onlySolveIp_;
14050 to_bitField6_ |= 0x00008000;
14051 }
14052 if (((from_bitField6_ & 0x00200000) != 0)) {
14053 result.mipWantedPrecision_ = mipWantedPrecision_;
14054 to_bitField6_ |= 0x00010000;
14055 }
14056 if (((from_bitField6_ & 0x00400000) != 0)) {
14057 result.mipMaxActivityExponent_ = mipMaxActivityExponent_;
14058 to_bitField6_ |= 0x00020000;
14059 }
14060 if (((from_bitField6_ & 0x00800000) != 0)) {
14061 result.mipCheckPrecision_ = mipCheckPrecision_;
14062 to_bitField6_ |= 0x00040000;
14063 }
14064 if (((from_bitField6_ & 0x01000000) != 0)) {
14065 result.mipComputeTrueObjectiveBound_ = mipComputeTrueObjectiveBound_;
14066 to_bitField6_ |= 0x00080000;
14067 }
14068 if (((from_bitField6_ & 0x02000000) != 0)) {
14069 result.mipMaxValidMagnitude_ = mipMaxValidMagnitude_;
14070 to_bitField6_ |= 0x00100000;
14071 }
14072 if (((from_bitField6_ & 0x04000000) != 0)) {
14073 result.mipDropTolerance_ = mipDropTolerance_;
14074 to_bitField6_ |= 0x00200000;
14075 }
14076 result.bitField5_ |= to_bitField5_;
14077 result.bitField6_ |= to_bitField6_;
14078 }
14079
14080 @java.lang.Override
14081 public Builder clone() {
14082 return super.clone();
14083 }
14084 @java.lang.Override
14086 com.google.protobuf.Descriptors.FieldDescriptor field,
14087 java.lang.Object value) {
14088 return super.setField(field, value);
14089 }
14090 @java.lang.Override
14092 com.google.protobuf.Descriptors.FieldDescriptor field) {
14093 return super.clearField(field);
14094 }
14095 @java.lang.Override
14097 com.google.protobuf.Descriptors.OneofDescriptor oneof) {
14098 return super.clearOneof(oneof);
14099 }
14100 @java.lang.Override
14102 com.google.protobuf.Descriptors.FieldDescriptor field,
14103 int index, java.lang.Object value) {
14104 return super.setRepeatedField(field, index, value);
14105 }
14106 @java.lang.Override
14108 com.google.protobuf.Descriptors.FieldDescriptor field,
14109 java.lang.Object value) {
14110 return super.addRepeatedField(field, value);
14111 }
14112 @java.lang.Override
14113 public Builder mergeFrom(com.google.protobuf.Message other) {
14114 if (other instanceof com.google.ortools.sat.SatParameters) {
14115 return mergeFrom((com.google.ortools.sat.SatParameters)other);
14116 } else {
14117 super.mergeFrom(other);
14118 return this;
14119 }
14120 }
14121
14122 public Builder mergeFrom(com.google.ortools.sat.SatParameters other) {
14123 if (other == com.google.ortools.sat.SatParameters.getDefaultInstance()) return this;
14124 if (other.hasName()) {
14125 name_ = other.name_;
14126 bitField0_ |= 0x00000001;
14127 onChanged();
14128 }
14129 if (other.hasPreferredVariableOrder()) {
14130 setPreferredVariableOrder(other.getPreferredVariableOrder());
14131 }
14132 if (other.hasInitialPolarity()) {
14133 setInitialPolarity(other.getInitialPolarity());
14134 }
14135 if (other.hasUsePhaseSaving()) {
14136 setUsePhaseSaving(other.getUsePhaseSaving());
14137 }
14138 if (other.hasPolarityRephaseIncrement()) {
14139 setPolarityRephaseIncrement(other.getPolarityRephaseIncrement());
14140 }
14141 if (other.hasRandomPolarityRatio()) {
14142 setRandomPolarityRatio(other.getRandomPolarityRatio());
14143 }
14144 if (other.hasRandomBranchesRatio()) {
14145 setRandomBranchesRatio(other.getRandomBranchesRatio());
14146 }
14147 if (other.hasUseErwaHeuristic()) {
14148 setUseErwaHeuristic(other.getUseErwaHeuristic());
14149 }
14150 if (other.hasInitialVariablesActivity()) {
14151 setInitialVariablesActivity(other.getInitialVariablesActivity());
14152 }
14153 if (other.hasAlsoBumpVariablesInConflictReasons()) {
14154 setAlsoBumpVariablesInConflictReasons(other.getAlsoBumpVariablesInConflictReasons());
14155 }
14156 if (other.hasMinimizationAlgorithm()) {
14157 setMinimizationAlgorithm(other.getMinimizationAlgorithm());
14158 }
14159 if (other.hasBinaryMinimizationAlgorithm()) {
14160 setBinaryMinimizationAlgorithm(other.getBinaryMinimizationAlgorithm());
14161 }
14162 if (other.hasSubsumptionDuringConflictAnalysis()) {
14163 setSubsumptionDuringConflictAnalysis(other.getSubsumptionDuringConflictAnalysis());
14164 }
14165 if (other.hasClauseCleanupPeriod()) {
14166 setClauseCleanupPeriod(other.getClauseCleanupPeriod());
14167 }
14168 if (other.hasClauseCleanupTarget()) {
14169 setClauseCleanupTarget(other.getClauseCleanupTarget());
14170 }
14171 if (other.hasClauseCleanupRatio()) {
14172 setClauseCleanupRatio(other.getClauseCleanupRatio());
14173 }
14174 if (other.hasClauseCleanupProtection()) {
14175 setClauseCleanupProtection(other.getClauseCleanupProtection());
14176 }
14177 if (other.hasClauseCleanupLbdBound()) {
14178 setClauseCleanupLbdBound(other.getClauseCleanupLbdBound());
14179 }
14180 if (other.hasClauseCleanupOrdering()) {
14181 setClauseCleanupOrdering(other.getClauseCleanupOrdering());
14182 }
14183 if (other.hasPbCleanupIncrement()) {
14184 setPbCleanupIncrement(other.getPbCleanupIncrement());
14185 }
14186 if (other.hasPbCleanupRatio()) {
14187 setPbCleanupRatio(other.getPbCleanupRatio());
14188 }
14189 if (other.hasMinimizeWithPropagationRestartPeriod()) {
14190 setMinimizeWithPropagationRestartPeriod(other.getMinimizeWithPropagationRestartPeriod());
14191 }
14192 if (other.hasMinimizeWithPropagationNumDecisions()) {
14193 setMinimizeWithPropagationNumDecisions(other.getMinimizeWithPropagationNumDecisions());
14194 }
14195 if (other.hasVariableActivityDecay()) {
14196 setVariableActivityDecay(other.getVariableActivityDecay());
14197 }
14198 if (other.hasMaxVariableActivityValue()) {
14199 setMaxVariableActivityValue(other.getMaxVariableActivityValue());
14200 }
14201 if (other.hasGlucoseMaxDecay()) {
14202 setGlucoseMaxDecay(other.getGlucoseMaxDecay());
14203 }
14204 if (other.hasGlucoseDecayIncrement()) {
14205 setGlucoseDecayIncrement(other.getGlucoseDecayIncrement());
14206 }
14207 if (other.hasGlucoseDecayIncrementPeriod()) {
14208 setGlucoseDecayIncrementPeriod(other.getGlucoseDecayIncrementPeriod());
14209 }
14210 if (other.hasClauseActivityDecay()) {
14211 setClauseActivityDecay(other.getClauseActivityDecay());
14212 }
14213 if (other.hasMaxClauseActivityValue()) {
14214 setMaxClauseActivityValue(other.getMaxClauseActivityValue());
14215 }
14216 if (!other.restartAlgorithms_.isEmpty()) {
14217 if (restartAlgorithms_.isEmpty()) {
14218 restartAlgorithms_ = other.restartAlgorithms_;
14219 bitField0_ = (bitField0_ & ~0x40000000);
14220 } else {
14221 ensureRestartAlgorithmsIsMutable();
14222 restartAlgorithms_.addAll(other.restartAlgorithms_);
14223 }
14224 onChanged();
14225 }
14226 if (other.hasDefaultRestartAlgorithms()) {
14227 defaultRestartAlgorithms_ = other.defaultRestartAlgorithms_;
14228 bitField0_ |= 0x80000000;
14229 onChanged();
14230 }
14231 if (other.hasRestartPeriod()) {
14232 setRestartPeriod(other.getRestartPeriod());
14233 }
14234 if (other.hasRestartRunningWindowSize()) {
14235 setRestartRunningWindowSize(other.getRestartRunningWindowSize());
14236 }
14237 if (other.hasRestartDlAverageRatio()) {
14238 setRestartDlAverageRatio(other.getRestartDlAverageRatio());
14239 }
14240 if (other.hasRestartLbdAverageRatio()) {
14241 setRestartLbdAverageRatio(other.getRestartLbdAverageRatio());
14242 }
14243 if (other.hasUseBlockingRestart()) {
14244 setUseBlockingRestart(other.getUseBlockingRestart());
14245 }
14246 if (other.hasBlockingRestartWindowSize()) {
14247 setBlockingRestartWindowSize(other.getBlockingRestartWindowSize());
14248 }
14249 if (other.hasBlockingRestartMultiplier()) {
14250 setBlockingRestartMultiplier(other.getBlockingRestartMultiplier());
14251 }
14252 if (other.hasNumConflictsBeforeStrategyChanges()) {
14253 setNumConflictsBeforeStrategyChanges(other.getNumConflictsBeforeStrategyChanges());
14254 }
14255 if (other.hasStrategyChangeIncreaseRatio()) {
14256 setStrategyChangeIncreaseRatio(other.getStrategyChangeIncreaseRatio());
14257 }
14258 if (other.hasMaxTimeInSeconds()) {
14259 setMaxTimeInSeconds(other.getMaxTimeInSeconds());
14260 }
14261 if (other.hasMaxDeterministicTime()) {
14262 setMaxDeterministicTime(other.getMaxDeterministicTime());
14263 }
14264 if (other.hasMaxNumberOfConflicts()) {
14265 setMaxNumberOfConflicts(other.getMaxNumberOfConflicts());
14266 }
14267 if (other.hasMaxMemoryInMb()) {
14268 setMaxMemoryInMb(other.getMaxMemoryInMb());
14269 }
14270 if (other.hasAbsoluteGapLimit()) {
14271 setAbsoluteGapLimit(other.getAbsoluteGapLimit());
14272 }
14273 if (other.hasRelativeGapLimit()) {
14274 setRelativeGapLimit(other.getRelativeGapLimit());
14275 }
14276 if (other.hasRandomSeed()) {
14277 setRandomSeed(other.getRandomSeed());
14278 }
14279 if (other.hasPermuteVariableRandomly()) {
14280 setPermuteVariableRandomly(other.getPermuteVariableRandomly());
14281 }
14282 if (other.hasPermutePresolveConstraintOrder()) {
14283 setPermutePresolveConstraintOrder(other.getPermutePresolveConstraintOrder());
14284 }
14285 if (other.hasUseAbslRandom()) {
14286 setUseAbslRandom(other.getUseAbslRandom());
14287 }
14288 if (other.hasLogSearchProgress()) {
14289 setLogSearchProgress(other.getLogSearchProgress());
14290 }
14291 if (other.hasLogFrequencyInSeconds()) {
14292 setLogFrequencyInSeconds(other.getLogFrequencyInSeconds());
14293 }
14294 if (other.hasModelReductionLogFrequencyInSeconds()) {
14295 setModelReductionLogFrequencyInSeconds(other.getModelReductionLogFrequencyInSeconds());
14296 }
14297 if (other.hasLogSubsolverStatistics()) {
14298 setLogSubsolverStatistics(other.getLogSubsolverStatistics());
14299 }
14300 if (other.hasLogPrefix()) {
14301 logPrefix_ = other.logPrefix_;
14302 bitField1_ |= 0x00800000;
14303 onChanged();
14304 }
14305 if (other.hasLogToStdout()) {
14306 setLogToStdout(other.getLogToStdout());
14307 }
14308 if (other.hasLogToResponse()) {
14309 setLogToResponse(other.getLogToResponse());
14310 }
14311 if (other.hasUsePbResolution()) {
14312 setUsePbResolution(other.getUsePbResolution());
14313 }
14314 if (other.hasMinimizeReductionDuringPbResolution()) {
14315 setMinimizeReductionDuringPbResolution(other.getMinimizeReductionDuringPbResolution());
14316 }
14317 if (other.hasCountAssumptionLevelsInLbd()) {
14318 setCountAssumptionLevelsInLbd(other.getCountAssumptionLevelsInLbd());
14319 }
14320 if (other.hasPresolveBveThreshold()) {
14321 setPresolveBveThreshold(other.getPresolveBveThreshold());
14322 }
14323 if (other.hasPresolveBveClauseWeight()) {
14324 setPresolveBveClauseWeight(other.getPresolveBveClauseWeight());
14325 }
14326 if (other.hasProbingDeterministicTimeLimit()) {
14327 setProbingDeterministicTimeLimit(other.getProbingDeterministicTimeLimit());
14328 }
14329 if (other.hasPresolveProbingDeterministicTimeLimit()) {
14330 setPresolveProbingDeterministicTimeLimit(other.getPresolveProbingDeterministicTimeLimit());
14331 }
14332 if (other.hasPresolveBlockedClause()) {
14333 setPresolveBlockedClause(other.getPresolveBlockedClause());
14334 }
14335 if (other.hasPresolveUseBva()) {
14336 setPresolveUseBva(other.getPresolveUseBva());
14337 }
14338 if (other.hasPresolveBvaThreshold()) {
14339 setPresolveBvaThreshold(other.getPresolveBvaThreshold());
14340 }
14341 if (other.hasMaxPresolveIterations()) {
14342 setMaxPresolveIterations(other.getMaxPresolveIterations());
14343 }
14344 if (other.hasCpModelPresolve()) {
14345 setCpModelPresolve(other.getCpModelPresolve());
14346 }
14347 if (other.hasCpModelProbingLevel()) {
14348 setCpModelProbingLevel(other.getCpModelProbingLevel());
14349 }
14350 if (other.hasCpModelUseSatPresolve()) {
14351 setCpModelUseSatPresolve(other.getCpModelUseSatPresolve());
14352 }
14353 if (other.hasUseSatInprocessing()) {
14354 setUseSatInprocessing(other.getUseSatInprocessing());
14355 }
14356 if (other.hasDetectTableWithCost()) {
14357 setDetectTableWithCost(other.getDetectTableWithCost());
14358 }
14359 if (other.hasTableCompressionLevel()) {
14360 setTableCompressionLevel(other.getTableCompressionLevel());
14361 }
14362 if (other.hasExpandAlldiffConstraints()) {
14363 setExpandAlldiffConstraints(other.getExpandAlldiffConstraints());
14364 }
14365 if (other.hasExpandReservoirConstraints()) {
14366 setExpandReservoirConstraints(other.getExpandReservoirConstraints());
14367 }
14368 if (other.hasDisableConstraintExpansion()) {
14369 setDisableConstraintExpansion(other.getDisableConstraintExpansion());
14370 }
14371 if (other.hasEncodeComplexLinearConstraintWithInteger()) {
14372 setEncodeComplexLinearConstraintWithInteger(other.getEncodeComplexLinearConstraintWithInteger());
14373 }
14374 if (other.hasMergeNoOverlapWorkLimit()) {
14375 setMergeNoOverlapWorkLimit(other.getMergeNoOverlapWorkLimit());
14376 }
14377 if (other.hasMergeAtMostOneWorkLimit()) {
14378 setMergeAtMostOneWorkLimit(other.getMergeAtMostOneWorkLimit());
14379 }
14380 if (other.hasPresolveSubstitutionLevel()) {
14381 setPresolveSubstitutionLevel(other.getPresolveSubstitutionLevel());
14382 }
14383 if (other.hasPresolveExtractIntegerEnforcement()) {
14384 setPresolveExtractIntegerEnforcement(other.getPresolveExtractIntegerEnforcement());
14385 }
14386 if (other.hasPresolveInclusionWorkLimit()) {
14387 setPresolveInclusionWorkLimit(other.getPresolveInclusionWorkLimit());
14388 }
14389 if (other.hasIgnoreNames()) {
14390 setIgnoreNames(other.getIgnoreNames());
14391 }
14392 if (other.hasInferAllDiffs()) {
14393 setInferAllDiffs(other.getInferAllDiffs());
14394 }
14395 if (other.hasFindBigLinearOverlap()) {
14396 setFindBigLinearOverlap(other.getFindBigLinearOverlap());
14397 }
14398 if (other.hasNumWorkers()) {
14399 setNumWorkers(other.getNumWorkers());
14400 }
14401 if (other.hasNumSearchWorkers()) {
14402 setNumSearchWorkers(other.getNumSearchWorkers());
14403 }
14404 if (other.hasMinNumLnsWorkers()) {
14405 setMinNumLnsWorkers(other.getMinNumLnsWorkers());
14406 }
14407 if (!other.subsolvers_.isEmpty()) {
14408 if (subsolvers_.isEmpty()) {
14409 subsolvers_ = other.subsolvers_;
14410 bitField2_ |= 0x04000000;
14411 } else {
14412 ensureSubsolversIsMutable();
14413 subsolvers_.addAll(other.subsolvers_);
14414 }
14415 onChanged();
14416 }
14417 if (!other.extraSubsolvers_.isEmpty()) {
14418 if (extraSubsolvers_.isEmpty()) {
14419 extraSubsolvers_ = other.extraSubsolvers_;
14420 bitField2_ |= 0x08000000;
14421 } else {
14422 ensureExtraSubsolversIsMutable();
14423 extraSubsolvers_.addAll(other.extraSubsolvers_);
14424 }
14425 onChanged();
14426 }
14427 if (!other.ignoreSubsolvers_.isEmpty()) {
14428 if (ignoreSubsolvers_.isEmpty()) {
14429 ignoreSubsolvers_ = other.ignoreSubsolvers_;
14430 bitField2_ |= 0x10000000;
14431 } else {
14432 ensureIgnoreSubsolversIsMutable();
14433 ignoreSubsolvers_.addAll(other.ignoreSubsolvers_);
14434 }
14435 onChanged();
14436 }
14437 if (subsolverParamsBuilder_ == null) {
14438 if (!other.subsolverParams_.isEmpty()) {
14439 if (subsolverParams_.isEmpty()) {
14440 subsolverParams_ = other.subsolverParams_;
14441 bitField2_ = (bitField2_ & ~0x20000000);
14442 } else {
14443 ensureSubsolverParamsIsMutable();
14444 subsolverParams_.addAll(other.subsolverParams_);
14445 }
14446 onChanged();
14447 }
14448 } else {
14449 if (!other.subsolverParams_.isEmpty()) {
14450 if (subsolverParamsBuilder_.isEmpty()) {
14451 subsolverParamsBuilder_.dispose();
14452 subsolverParamsBuilder_ = null;
14453 subsolverParams_ = other.subsolverParams_;
14454 bitField2_ = (bitField2_ & ~0x20000000);
14455 subsolverParamsBuilder_ =
14456 com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
14457 getSubsolverParamsFieldBuilder() : null;
14458 } else {
14459 subsolverParamsBuilder_.addAllMessages(other.subsolverParams_);
14460 }
14461 }
14462 }
14463 if (other.hasInterleaveSearch()) {
14464 setInterleaveSearch(other.getInterleaveSearch());
14465 }
14466 if (other.hasInterleaveBatchSize()) {
14467 setInterleaveBatchSize(other.getInterleaveBatchSize());
14468 }
14469 if (other.hasShareObjectiveBounds()) {
14470 setShareObjectiveBounds(other.getShareObjectiveBounds());
14471 }
14472 if (other.hasShareLevelZeroBounds()) {
14473 setShareLevelZeroBounds(other.getShareLevelZeroBounds());
14474 }
14475 if (other.hasShareBinaryClauses()) {
14476 setShareBinaryClauses(other.getShareBinaryClauses());
14477 }
14478 if (other.hasDebugPostsolveWithFullSolver()) {
14479 setDebugPostsolveWithFullSolver(other.getDebugPostsolveWithFullSolver());
14480 }
14481 if (other.hasDebugMaxNumPresolveOperations()) {
14482 setDebugMaxNumPresolveOperations(other.getDebugMaxNumPresolveOperations());
14483 }
14484 if (other.hasDebugCrashOnBadHint()) {
14485 setDebugCrashOnBadHint(other.getDebugCrashOnBadHint());
14486 }
14487 if (other.hasUseOptimizationHints()) {
14488 setUseOptimizationHints(other.getUseOptimizationHints());
14489 }
14490 if (other.hasMinimizeCore()) {
14491 setMinimizeCore(other.getMinimizeCore());
14492 }
14493 if (other.hasFindMultipleCores()) {
14494 setFindMultipleCores(other.getFindMultipleCores());
14495 }
14496 if (other.hasCoverOptimization()) {
14497 setCoverOptimization(other.getCoverOptimization());
14498 }
14499 if (other.hasMaxSatAssumptionOrder()) {
14500 setMaxSatAssumptionOrder(other.getMaxSatAssumptionOrder());
14501 }
14502 if (other.hasMaxSatReverseAssumptionOrder()) {
14503 setMaxSatReverseAssumptionOrder(other.getMaxSatReverseAssumptionOrder());
14504 }
14505 if (other.hasMaxSatStratification()) {
14506 setMaxSatStratification(other.getMaxSatStratification());
14507 }
14508 if (other.hasPropagationLoopDetectionFactor()) {
14509 setPropagationLoopDetectionFactor(other.getPropagationLoopDetectionFactor());
14510 }
14511 if (other.hasUsePrecedencesInDisjunctiveConstraint()) {
14512 setUsePrecedencesInDisjunctiveConstraint(other.getUsePrecedencesInDisjunctiveConstraint());
14513 }
14514 if (other.hasMaxSizeToCreatePrecedenceLiteralsInDisjunctive()) {
14515 setMaxSizeToCreatePrecedenceLiteralsInDisjunctive(other.getMaxSizeToCreatePrecedenceLiteralsInDisjunctive());
14516 }
14517 if (other.hasUseStrongPropagationInDisjunctive()) {
14518 setUseStrongPropagationInDisjunctive(other.getUseStrongPropagationInDisjunctive());
14519 }
14520 if (other.hasUseOverloadCheckerInCumulative()) {
14521 setUseOverloadCheckerInCumulative(other.getUseOverloadCheckerInCumulative());
14522 }
14523 if (other.hasUseTimetableEdgeFindingInCumulative()) {
14524 setUseTimetableEdgeFindingInCumulative(other.getUseTimetableEdgeFindingInCumulative());
14525 }
14526 if (other.hasUseHardPrecedencesInCumulative()) {
14527 setUseHardPrecedencesInCumulative(other.getUseHardPrecedencesInCumulative());
14528 }
14529 if (other.hasExploitAllPrecedences()) {
14530 setExploitAllPrecedences(other.getExploitAllPrecedences());
14531 }
14532 if (other.hasUseDisjunctiveConstraintInCumulative()) {
14533 setUseDisjunctiveConstraintInCumulative(other.getUseDisjunctiveConstraintInCumulative());
14534 }
14535 if (other.hasUseTimetablingInNoOverlap2D()) {
14536 setUseTimetablingInNoOverlap2D(other.getUseTimetablingInNoOverlap2D());
14537 }
14538 if (other.hasUseEnergeticReasoningInNoOverlap2D()) {
14539 setUseEnergeticReasoningInNoOverlap2D(other.getUseEnergeticReasoningInNoOverlap2D());
14540 }
14541 if (other.hasUsePairwiseReasoningInNoOverlap2D()) {
14542 setUsePairwiseReasoningInNoOverlap2D(other.getUsePairwiseReasoningInNoOverlap2D());
14543 }
14544 if (other.hasUseDualSchedulingHeuristics()) {
14545 setUseDualSchedulingHeuristics(other.getUseDualSchedulingHeuristics());
14546 }
14547 if (other.hasLinearizationLevel()) {
14548 setLinearizationLevel(other.getLinearizationLevel());
14549 }
14550 if (other.hasBooleanEncodingLevel()) {
14551 setBooleanEncodingLevel(other.getBooleanEncodingLevel());
14552 }
14553 if (other.hasMaxDomainSizeWhenEncodingEqNeqConstraints()) {
14554 setMaxDomainSizeWhenEncodingEqNeqConstraints(other.getMaxDomainSizeWhenEncodingEqNeqConstraints());
14555 }
14556 if (other.hasMaxNumCuts()) {
14557 setMaxNumCuts(other.getMaxNumCuts());
14558 }
14559 if (other.hasCutLevel()) {
14560 setCutLevel(other.getCutLevel());
14561 }
14562 if (other.hasOnlyAddCutsAtLevelZero()) {
14563 setOnlyAddCutsAtLevelZero(other.getOnlyAddCutsAtLevelZero());
14564 }
14565 if (other.hasAddObjectiveCut()) {
14566 setAddObjectiveCut(other.getAddObjectiveCut());
14567 }
14568 if (other.hasAddCgCuts()) {
14569 setAddCgCuts(other.getAddCgCuts());
14570 }
14571 if (other.hasAddMirCuts()) {
14572 setAddMirCuts(other.getAddMirCuts());
14573 }
14574 if (other.hasAddZeroHalfCuts()) {
14575 setAddZeroHalfCuts(other.getAddZeroHalfCuts());
14576 }
14577 if (other.hasAddCliqueCuts()) {
14578 setAddCliqueCuts(other.getAddCliqueCuts());
14579 }
14580 if (other.hasMaxAllDiffCutSize()) {
14581 setMaxAllDiffCutSize(other.getMaxAllDiffCutSize());
14582 }
14583 if (other.hasAddLinMaxCuts()) {
14584 setAddLinMaxCuts(other.getAddLinMaxCuts());
14585 }
14586 if (other.hasMaxIntegerRoundingScaling()) {
14587 setMaxIntegerRoundingScaling(other.getMaxIntegerRoundingScaling());
14588 }
14589 if (other.hasAddLpConstraintsLazily()) {
14590 setAddLpConstraintsLazily(other.getAddLpConstraintsLazily());
14591 }
14592 if (other.hasRootLpIterations()) {
14593 setRootLpIterations(other.getRootLpIterations());
14594 }
14595 if (other.hasMinOrthogonalityForLpConstraints()) {
14596 setMinOrthogonalityForLpConstraints(other.getMinOrthogonalityForLpConstraints());
14597 }
14598 if (other.hasMaxCutRoundsAtLevelZero()) {
14599 setMaxCutRoundsAtLevelZero(other.getMaxCutRoundsAtLevelZero());
14600 }
14601 if (other.hasMaxConsecutiveInactiveCount()) {
14602 setMaxConsecutiveInactiveCount(other.getMaxConsecutiveInactiveCount());
14603 }
14604 if (other.hasCutMaxActiveCountValue()) {
14605 setCutMaxActiveCountValue(other.getCutMaxActiveCountValue());
14606 }
14607 if (other.hasCutActiveCountDecay()) {
14608 setCutActiveCountDecay(other.getCutActiveCountDecay());
14609 }
14610 if (other.hasCutCleanupTarget()) {
14611 setCutCleanupTarget(other.getCutCleanupTarget());
14612 }
14613 if (other.hasNewConstraintsBatchSize()) {
14614 setNewConstraintsBatchSize(other.getNewConstraintsBatchSize());
14615 }
14616 if (other.hasSearchBranching()) {
14617 setSearchBranching(other.getSearchBranching());
14618 }
14619 if (other.hasHintConflictLimit()) {
14620 setHintConflictLimit(other.getHintConflictLimit());
14621 }
14622 if (other.hasRepairHint()) {
14623 setRepairHint(other.getRepairHint());
14624 }
14625 if (other.hasFixVariablesToTheirHintedValue()) {
14626 setFixVariablesToTheirHintedValue(other.getFixVariablesToTheirHintedValue());
14627 }
14628 if (other.hasExploitIntegerLpSolution()) {
14629 setExploitIntegerLpSolution(other.getExploitIntegerLpSolution());
14630 }
14631 if (other.hasExploitAllLpSolution()) {
14632 setExploitAllLpSolution(other.getExploitAllLpSolution());
14633 }
14634 if (other.hasExploitBestSolution()) {
14635 setExploitBestSolution(other.getExploitBestSolution());
14636 }
14637 if (other.hasExploitRelaxationSolution()) {
14638 setExploitRelaxationSolution(other.getExploitRelaxationSolution());
14639 }
14640 if (other.hasExploitObjective()) {
14641 setExploitObjective(other.getExploitObjective());
14642 }
14643 if (other.hasProbingPeriodAtRoot()) {
14644 setProbingPeriodAtRoot(other.getProbingPeriodAtRoot());
14645 }
14646 if (other.hasUseProbingSearch()) {
14647 setUseProbingSearch(other.getUseProbingSearch());
14648 }
14649 if (other.hasUseShavingInProbingSearch()) {
14650 setUseShavingInProbingSearch(other.getUseShavingInProbingSearch());
14651 }
14652 if (other.hasShavingSearchDeterministicTime()) {
14653 setShavingSearchDeterministicTime(other.getShavingSearchDeterministicTime());
14654 }
14655 if (other.hasUseObjectiveLbSearch()) {
14656 setUseObjectiveLbSearch(other.getUseObjectiveLbSearch());
14657 }
14658 if (other.hasUseObjectiveShavingSearch()) {
14659 setUseObjectiveShavingSearch(other.getUseObjectiveShavingSearch());
14660 }
14661 if (other.hasPseudoCostReliabilityThreshold()) {
14662 setPseudoCostReliabilityThreshold(other.getPseudoCostReliabilityThreshold());
14663 }
14664 if (other.hasOptimizeWithCore()) {
14665 setOptimizeWithCore(other.getOptimizeWithCore());
14666 }
14667 if (other.hasOptimizeWithLbTreeSearch()) {
14668 setOptimizeWithLbTreeSearch(other.getOptimizeWithLbTreeSearch());
14669 }
14670 if (other.hasBinarySearchNumConflicts()) {
14671 setBinarySearchNumConflicts(other.getBinarySearchNumConflicts());
14672 }
14673 if (other.hasOptimizeWithMaxHs()) {
14674 setOptimizeWithMaxHs(other.getOptimizeWithMaxHs());
14675 }
14676 if (other.hasTestFeasibilityJump()) {
14677 setTestFeasibilityJump(other.getTestFeasibilityJump());
14678 }
14679 if (other.hasFeasibilityJumpMaxNumValuesScanned()) {
14680 setFeasibilityJumpMaxNumValuesScanned(other.getFeasibilityJumpMaxNumValuesScanned());
14681 }
14682 if (other.hasFeasibilityJumpProtectLinearFeasibility()) {
14683 setFeasibilityJumpProtectLinearFeasibility(other.getFeasibilityJumpProtectLinearFeasibility());
14684 }
14685 if (other.hasFeasibilityJumpDecay()) {
14686 setFeasibilityJumpDecay(other.getFeasibilityJumpDecay());
14687 }
14688 if (other.hasFeasibilityJumpVarRandomizationProbability()) {
14689 setFeasibilityJumpVarRandomizationProbability(other.getFeasibilityJumpVarRandomizationProbability());
14690 }
14691 if (other.hasFeasibilityJumpVarPerburbationRangeRatio()) {
14692 setFeasibilityJumpVarPerburbationRangeRatio(other.getFeasibilityJumpVarPerburbationRangeRatio());
14693 }
14694 if (other.hasFeasibilityJumpEnableRestarts()) {
14695 setFeasibilityJumpEnableRestarts(other.getFeasibilityJumpEnableRestarts());
14696 }
14697 if (other.hasNumViolationLs()) {
14698 setNumViolationLs(other.getNumViolationLs());
14699 }
14700 if (other.hasViolationLsPerturbationPeriod()) {
14701 setViolationLsPerturbationPeriod(other.getViolationLsPerturbationPeriod());
14702 }
14703 if (other.hasSharedTreeNumWorkers()) {
14704 setSharedTreeNumWorkers(other.getSharedTreeNumWorkers());
14705 }
14706 if (other.hasUseSharedTreeSearch()) {
14707 setUseSharedTreeSearch(other.getUseSharedTreeSearch());
14708 }
14709 if (other.hasSharedTreeWorkerObjectiveSplitProbability()) {
14710 setSharedTreeWorkerObjectiveSplitProbability(other.getSharedTreeWorkerObjectiveSplitProbability());
14711 }
14712 if (other.hasSharedTreeMaxNodesPerWorker()) {
14713 setSharedTreeMaxNodesPerWorker(other.getSharedTreeMaxNodesPerWorker());
14714 }
14715 if (other.hasSharedTreeSplitStrategy()) {
14716 setSharedTreeSplitStrategy(other.getSharedTreeSplitStrategy());
14717 }
14718 if (other.hasEnumerateAllSolutions()) {
14719 setEnumerateAllSolutions(other.getEnumerateAllSolutions());
14720 }
14721 if (other.hasKeepAllFeasibleSolutionsInPresolve()) {
14722 setKeepAllFeasibleSolutionsInPresolve(other.getKeepAllFeasibleSolutionsInPresolve());
14723 }
14724 if (other.hasFillTightenedDomainsInResponse()) {
14725 setFillTightenedDomainsInResponse(other.getFillTightenedDomainsInResponse());
14726 }
14727 if (other.hasFillAdditionalSolutionsInResponse()) {
14728 setFillAdditionalSolutionsInResponse(other.getFillAdditionalSolutionsInResponse());
14729 }
14730 if (other.hasInstantiateAllVariables()) {
14731 setInstantiateAllVariables(other.getInstantiateAllVariables());
14732 }
14733 if (other.hasAutoDetectGreaterThanAtLeastOneOf()) {
14734 setAutoDetectGreaterThanAtLeastOneOf(other.getAutoDetectGreaterThanAtLeastOneOf());
14735 }
14736 if (other.hasStopAfterFirstSolution()) {
14737 setStopAfterFirstSolution(other.getStopAfterFirstSolution());
14738 }
14739 if (other.hasStopAfterPresolve()) {
14740 setStopAfterPresolve(other.getStopAfterPresolve());
14741 }
14742 if (other.hasStopAfterRootPropagation()) {
14743 setStopAfterRootPropagation(other.getStopAfterRootPropagation());
14744 }
14745 if (other.hasUseLnsOnly()) {
14746 setUseLnsOnly(other.getUseLnsOnly());
14747 }
14748 if (other.hasSolutionPoolSize()) {
14749 setSolutionPoolSize(other.getSolutionPoolSize());
14750 }
14751 if (other.hasUseRinsLns()) {
14752 setUseRinsLns(other.getUseRinsLns());
14753 }
14754 if (other.hasUseFeasibilityPump()) {
14755 setUseFeasibilityPump(other.getUseFeasibilityPump());
14756 }
14757 if (other.hasUseLbRelaxLns()) {
14758 setUseLbRelaxLns(other.getUseLbRelaxLns());
14759 }
14760 if (other.hasFpRounding()) {
14761 setFpRounding(other.getFpRounding());
14762 }
14763 if (other.hasDiversifyLnsParams()) {
14764 setDiversifyLnsParams(other.getDiversifyLnsParams());
14765 }
14766 if (other.hasRandomizeSearch()) {
14767 setRandomizeSearch(other.getRandomizeSearch());
14768 }
14769 if (other.hasSearchRandomizationTolerance()) {
14770 setSearchRandomizationTolerance(other.getSearchRandomizationTolerance());
14771 }
14772 if (other.hasUseOptionalVariables()) {
14773 setUseOptionalVariables(other.getUseOptionalVariables());
14774 }
14775 if (other.hasUseExactLpReason()) {
14776 setUseExactLpReason(other.getUseExactLpReason());
14777 }
14778 if (other.hasUseBranchingInLp()) {
14779 setUseBranchingInLp(other.getUseBranchingInLp());
14780 }
14781 if (other.hasUseCombinedNoOverlap()) {
14782 setUseCombinedNoOverlap(other.getUseCombinedNoOverlap());
14783 }
14784 if (other.hasCatchSigintSignal()) {
14785 setCatchSigintSignal(other.getCatchSigintSignal());
14786 }
14787 if (other.hasUseImpliedBounds()) {
14788 setUseImpliedBounds(other.getUseImpliedBounds());
14789 }
14790 if (other.hasPolishLpSolution()) {
14791 setPolishLpSolution(other.getPolishLpSolution());
14792 }
14793 if (other.hasConvertIntervals()) {
14794 setConvertIntervals(other.getConvertIntervals());
14795 }
14796 if (other.hasSymmetryLevel()) {
14797 setSymmetryLevel(other.getSymmetryLevel());
14798 }
14799 if (other.hasNewLinearPropagation()) {
14800 setNewLinearPropagation(other.getNewLinearPropagation());
14801 }
14802 if (other.hasLinearSplitSize()) {
14803 setLinearSplitSize(other.getLinearSplitSize());
14804 }
14805 if (other.hasMipMaxBound()) {
14806 setMipMaxBound(other.getMipMaxBound());
14807 }
14808 if (other.hasMipVarScaling()) {
14809 setMipVarScaling(other.getMipVarScaling());
14810 }
14811 if (other.hasMipScaleLargeDomain()) {
14812 setMipScaleLargeDomain(other.getMipScaleLargeDomain());
14813 }
14814 if (other.hasMipAutomaticallyScaleVariables()) {
14815 setMipAutomaticallyScaleVariables(other.getMipAutomaticallyScaleVariables());
14816 }
14817 if (other.hasOnlySolveIp()) {
14818 setOnlySolveIp(other.getOnlySolveIp());
14819 }
14820 if (other.hasMipWantedPrecision()) {
14821 setMipWantedPrecision(other.getMipWantedPrecision());
14822 }
14823 if (other.hasMipMaxActivityExponent()) {
14824 setMipMaxActivityExponent(other.getMipMaxActivityExponent());
14825 }
14826 if (other.hasMipCheckPrecision()) {
14827 setMipCheckPrecision(other.getMipCheckPrecision());
14828 }
14829 if (other.hasMipComputeTrueObjectiveBound()) {
14830 setMipComputeTrueObjectiveBound(other.getMipComputeTrueObjectiveBound());
14831 }
14832 if (other.hasMipMaxValidMagnitude()) {
14833 setMipMaxValidMagnitude(other.getMipMaxValidMagnitude());
14834 }
14835 if (other.hasMipDropTolerance()) {
14836 setMipDropTolerance(other.getMipDropTolerance());
14837 }
14838 this.mergeUnknownFields(other.getUnknownFields());
14839 onChanged();
14840 return this;
14841 }
14842
14843 @java.lang.Override
14844 public final boolean isInitialized() {
14845 return true;
14846 }
14847
14848 @java.lang.Override
14850 com.google.protobuf.CodedInputStream input,
14851 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14852 throws java.io.IOException {
14853 if (extensionRegistry == null) {
14854 throw new java.lang.NullPointerException();
14855 }
14856 try {
14857 boolean done = false;
14858 while (!done) {
14859 int tag = input.readTag();
14860 switch (tag) {
14861 case 0:
14862 done = true;
14863 break;
14864 case 8: {
14865 int tmpRaw = input.readEnum();
14867 com.google.ortools.sat.SatParameters.VariableOrder.forNumber(tmpRaw);
14868 if (tmpValue == null) {
14869 mergeUnknownVarintField(1, tmpRaw);
14870 } else {
14871 preferredVariableOrder_ = tmpRaw;
14872 bitField0_ |= 0x00000002;
14873 }
14874 break;
14875 } // case 8
14876 case 16: {
14877 int tmpRaw = input.readEnum();
14879 com.google.ortools.sat.SatParameters.Polarity.forNumber(tmpRaw);
14880 if (tmpValue == null) {
14881 mergeUnknownVarintField(2, tmpRaw);
14882 } else {
14883 initialPolarity_ = tmpRaw;
14884 bitField0_ |= 0x00000004;
14885 }
14886 break;
14887 } // case 16
14888 case 32: {
14889 int tmpRaw = input.readEnum();
14891 com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.forNumber(tmpRaw);
14892 if (tmpValue == null) {
14893 mergeUnknownVarintField(4, tmpRaw);
14894 } else {
14895 minimizationAlgorithm_ = tmpRaw;
14896 bitField0_ |= 0x00000400;
14897 }
14898 break;
14899 } // case 32
14900 case 88: {
14901 clauseCleanupPeriod_ = input.readInt32();
14902 bitField0_ |= 0x00002000;
14903 break;
14904 } // case 88
14905 case 104: {
14906 clauseCleanupTarget_ = input.readInt32();
14907 bitField0_ |= 0x00004000;
14908 break;
14909 } // case 104
14910 case 121: {
14911 variableActivityDecay_ = input.readDouble();
14912 bitField0_ |= 0x00800000;
14913 break;
14914 } // case 121
14915 case 129: {
14916 maxVariableActivityValue_ = input.readDouble();
14917 bitField0_ |= 0x01000000;
14918 break;
14919 } // case 129
14920 case 137: {
14921 clauseActivityDecay_ = input.readDouble();
14922 bitField0_ |= 0x10000000;
14923 break;
14924 } // case 137
14925 case 145: {
14926 maxClauseActivityValue_ = input.readDouble();
14927 bitField0_ |= 0x20000000;
14928 break;
14929 } // case 145
14930 case 177: {
14931 glucoseMaxDecay_ = input.readDouble();
14932 bitField0_ |= 0x02000000;
14933 break;
14934 } // case 177
14935 case 185: {
14936 glucoseDecayIncrement_ = input.readDouble();
14937 bitField0_ |= 0x04000000;
14938 break;
14939 } // case 185
14940 case 192: {
14941 glucoseDecayIncrementPeriod_ = input.readInt32();
14942 bitField0_ |= 0x08000000;
14943 break;
14944 } // case 192
14945 case 240: {
14946 restartPeriod_ = input.readInt32();
14947 bitField1_ |= 0x00000001;
14948 break;
14949 } // case 240
14950 case 248: {
14951 randomSeed_ = input.readInt32();
14952 bitField1_ |= 0x00008000;
14953 break;
14954 } // case 248
14955 case 257: {
14956 randomBranchesRatio_ = input.readDouble();
14957 bitField0_ |= 0x00000040;
14958 break;
14959 } // case 257
14960 case 272: {
14961 int tmpRaw = input.readEnum();
14963 com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.forNumber(tmpRaw);
14964 if (tmpValue == null) {
14965 mergeUnknownVarintField(34, tmpRaw);
14966 } else {
14967 binaryMinimizationAlgorithm_ = tmpRaw;
14968 bitField0_ |= 0x00000800;
14969 }
14970 break;
14971 } // case 272
14972 case 280: {
14973 useOptimizationHints_ = input.readBool();
14974 bitField3_ |= 0x00000040;
14975 break;
14976 } // case 280
14977 case 289: {
14978 maxTimeInSeconds_ = input.readDouble();
14979 bitField1_ |= 0x00000200;
14980 break;
14981 } // case 289
14982 case 296: {
14983 maxNumberOfConflicts_ = input.readInt64();
14984 bitField1_ |= 0x00000800;
14985 break;
14986 } // case 296
14987 case 320: {
14988 maxMemoryInMb_ = input.readInt64();
14989 bitField1_ |= 0x00001000;
14990 break;
14991 } // case 320
14992 case 328: {
14993 logSearchProgress_ = input.readBool();
14994 bitField1_ |= 0x00080000;
14995 break;
14996 } // case 328
14997 case 344: {
14998 usePbResolution_ = input.readBool();
14999 bitField1_ |= 0x04000000;
15000 break;
15001 } // case 344
15002 case 352: {
15003 usePhaseSaving_ = input.readBool();
15004 bitField0_ |= 0x00000008;
15005 break;
15006 } // case 352
15007 case 361: {
15008 randomPolarityRatio_ = input.readDouble();
15009 bitField0_ |= 0x00000020;
15010 break;
15011 } // case 361
15012 case 368: {
15013 pbCleanupIncrement_ = input.readInt32();
15014 bitField0_ |= 0x00080000;
15015 break;
15016 } // case 368
15017 case 377: {
15018 pbCleanupRatio_ = input.readDouble();
15019 bitField0_ |= 0x00100000;
15020 break;
15021 } // case 377
15022 case 384: {
15023 minimizeReductionDuringPbResolution_ = input.readBool();
15024 bitField1_ |= 0x08000000;
15025 break;
15026 } // case 384
15027 case 392: {
15028 countAssumptionLevelsInLbd_ = input.readBool();
15029 bitField1_ |= 0x10000000;
15030 break;
15031 } // case 392
15032 case 400: {
15033 minimizeCore_ = input.readBool();
15034 bitField3_ |= 0x00000080;
15035 break;
15036 } // case 400
15037 case 408: {
15038 int tmpRaw = input.readEnum();
15040 com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.forNumber(tmpRaw);
15041 if (tmpValue == null) {
15042 mergeUnknownVarintField(51, tmpRaw);
15043 } else {
15044 maxSatAssumptionOrder_ = tmpRaw;
15045 bitField3_ |= 0x00000400;
15046 }
15047 break;
15048 } // case 408
15049 case 416: {
15050 maxSatReverseAssumptionOrder_ = input.readBool();
15051 bitField3_ |= 0x00000800;
15052 break;
15053 } // case 416
15054 case 424: {
15055 int tmpRaw = input.readEnum();
15057 com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.forNumber(tmpRaw);
15058 if (tmpValue == null) {
15059 mergeUnknownVarintField(53, tmpRaw);
15060 } else {
15061 maxSatStratification_ = tmpRaw;
15062 bitField3_ |= 0x00001000;
15063 }
15064 break;
15065 } // case 424
15066 case 432: {
15067 presolveBveThreshold_ = input.readInt32();
15068 bitField1_ |= 0x20000000;
15069 break;
15070 } // case 432
15071 case 440: {
15072 presolveBveClauseWeight_ = input.readInt32();
15073 bitField1_ |= 0x40000000;
15074 break;
15075 } // case 440
15076 case 448: {
15077 subsumptionDuringConflictAnalysis_ = input.readBool();
15078 bitField0_ |= 0x00001000;
15079 break;
15080 } // case 448
15081 case 457: {
15082 presolveProbingDeterministicTimeLimit_ = input.readDouble();
15083 bitField2_ |= 0x00000001;
15084 break;
15085 } // case 457
15086 case 464: {
15087 int tmpRaw = input.readEnum();
15089 com.google.ortools.sat.SatParameters.ClauseProtection.forNumber(tmpRaw);
15090 if (tmpValue == null) {
15091 mergeUnknownVarintField(58, tmpRaw);
15092 } else {
15093 clauseCleanupProtection_ = tmpRaw;
15094 bitField0_ |= 0x00010000;
15095 }
15096 break;
15097 } // case 464
15098 case 472: {
15099 clauseCleanupLbdBound_ = input.readInt32();
15100 bitField0_ |= 0x00020000;
15101 break;
15102 } // case 472
15103 case 480: {
15104 int tmpRaw = input.readEnum();
15106 com.google.ortools.sat.SatParameters.ClauseOrdering.forNumber(tmpRaw);
15107 if (tmpValue == null) {
15108 mergeUnknownVarintField(60, tmpRaw);
15109 } else {
15110 clauseCleanupOrdering_ = tmpRaw;
15111 bitField0_ |= 0x00040000;
15112 }
15113 break;
15114 } // case 480
15115 case 488: {
15116 int tmpRaw = input.readEnum();
15118 com.google.ortools.sat.SatParameters.RestartAlgorithm.forNumber(tmpRaw);
15119 if (tmpValue == null) {
15120 mergeUnknownVarintField(61, tmpRaw);
15121 } else {
15122 ensureRestartAlgorithmsIsMutable();
15123 restartAlgorithms_.add(tmpRaw);
15124 }
15125 break;
15126 } // case 488
15127 case 490: {
15128 int length = input.readRawVarint32();
15129 int oldLimit = input.pushLimit(length);
15130 while(input.getBytesUntilLimit() > 0) {
15131 int tmpRaw = input.readEnum();
15133 com.google.ortools.sat.SatParameters.RestartAlgorithm.forNumber(tmpRaw);
15134 if (tmpValue == null) {
15135 mergeUnknownVarintField(61, tmpRaw);
15136 } else {
15137 ensureRestartAlgorithmsIsMutable();
15138 restartAlgorithms_.add(tmpRaw);
15139 }
15140 }
15141 input.popLimit(oldLimit);
15142 break;
15143 } // case 490
15144 case 496: {
15145 restartRunningWindowSize_ = input.readInt32();
15146 bitField1_ |= 0x00000002;
15147 break;
15148 } // case 496
15149 case 505: {
15150 restartDlAverageRatio_ = input.readDouble();
15151 bitField1_ |= 0x00000004;
15152 break;
15153 } // case 505
15154 case 512: {
15155 useBlockingRestart_ = input.readBool();
15156 bitField1_ |= 0x00000010;
15157 break;
15158 } // case 512
15159 case 520: {
15160 blockingRestartWindowSize_ = input.readInt32();
15161 bitField1_ |= 0x00000020;
15162 break;
15163 } // case 520
15164 case 529: {
15165 blockingRestartMultiplier_ = input.readDouble();
15166 bitField1_ |= 0x00000040;
15167 break;
15168 } // case 529
15169 case 537: {
15170 maxDeterministicTime_ = input.readDouble();
15171 bitField1_ |= 0x00000400;
15172 break;
15173 } // case 537
15174 case 544: {
15175 numConflictsBeforeStrategyChanges_ = input.readInt32();
15176 bitField1_ |= 0x00000080;
15177 break;
15178 } // case 544
15179 case 553: {
15180 strategyChangeIncreaseRatio_ = input.readDouble();
15181 bitField1_ |= 0x00000100;
15182 break;
15183 } // case 553
15184 case 562: {
15185 defaultRestartAlgorithms_ = input.readBytes();
15186 bitField0_ |= 0x80000000;
15187 break;
15188 } // case 562
15189 case 569: {
15190 restartLbdAverageRatio_ = input.readDouble();
15191 bitField1_ |= 0x00000008;
15192 break;
15193 } // case 569
15194 case 576: {
15195 presolveUseBva_ = input.readBool();
15196 bitField2_ |= 0x00000004;
15197 break;
15198 } // case 576
15199 case 584: {
15200 presolveBvaThreshold_ = input.readInt32();
15201 bitField2_ |= 0x00000008;
15202 break;
15203 } // case 584
15204 case 592: {
15205 usePrecedencesInDisjunctiveConstraint_ = input.readBool();
15206 bitField3_ |= 0x00004000;
15207 break;
15208 } // case 592
15209 case 600: {
15210 useErwaHeuristic_ = input.readBool();
15211 bitField0_ |= 0x00000080;
15212 break;
15213 } // case 600
15214 case 609: {
15215 initialVariablesActivity_ = input.readDouble();
15216 bitField0_ |= 0x00000100;
15217 break;
15218 } // case 609
15219 case 616: {
15220 alsoBumpVariablesInConflictReasons_ = input.readBool();
15221 bitField0_ |= 0x00000200;
15222 break;
15223 } // case 616
15224 case 624: {
15225 useOverloadCheckerInCumulative_ = input.readBool();
15226 bitField3_ |= 0x00020000;
15227 break;
15228 } // case 624
15229 case 632: {
15230 useTimetableEdgeFindingInCumulative_ = input.readBool();
15231 bitField3_ |= 0x00040000;
15232 break;
15233 } // case 632
15234 case 640: {
15235 useDisjunctiveConstraintInCumulative_ = input.readBool();
15236 bitField3_ |= 0x00200000;
15237 break;
15238 } // case 640
15239 case 656: {
15240 int tmpRaw = input.readEnum();
15242 com.google.ortools.sat.SatParameters.SearchBranching.forNumber(tmpRaw);
15243 if (tmpValue == null) {
15244 mergeUnknownVarintField(82, tmpRaw);
15245 } else {
15246 searchBranching_ = tmpRaw;
15247 bitField4_ |= 0x00020000;
15248 }
15249 break;
15250 } // case 656
15251 case 664: {
15252 optimizeWithCore_ = input.readBool();
15253 bitField5_ |= 0x00000002;
15254 break;
15255 } // case 664
15256 case 672: {
15257 findMultipleCores_ = input.readBool();
15258 bitField3_ |= 0x00000100;
15259 break;
15260 } // case 672
15261 case 680: {
15262 optimizeWithMaxHs_ = input.readBool();
15263 bitField5_ |= 0x00000010;
15264 break;
15265 } // case 680
15266 case 688: {
15267 cpModelPresolve_ = input.readBool();
15268 bitField2_ |= 0x00000020;
15269 break;
15270 } // case 688
15271 case 696: {
15272 enumerateAllSolutions_ = input.readBool();
15273 bitField5_ |= 0x00080000;
15274 break;
15275 } // case 696
15276 case 704: {
15277 presolveBlockedClause_ = input.readBool();
15278 bitField2_ |= 0x00000002;
15279 break;
15280 } // case 704
15281 case 712: {
15282 coverOptimization_ = input.readBool();
15283 bitField3_ |= 0x00000200;
15284 break;
15285 } // case 712
15286 case 720: {
15287 linearizationLevel_ = input.readInt32();
15288 bitField3_ |= 0x04000000;
15289 break;
15290 } // case 720
15291 case 728: {
15292 maxNumCuts_ = input.readInt32();
15293 bitField3_ |= 0x20000000;
15294 break;
15295 } // case 728
15296 case 736: {
15297 onlyAddCutsAtLevelZero_ = input.readBool();
15298 bitField3_ |= 0x80000000;
15299 break;
15300 } // case 736
15301 case 744: {
15302 cpModelUseSatPresolve_ = input.readBool();
15303 bitField2_ |= 0x00000080;
15304 break;
15305 } // case 744
15306 case 752: {
15307 exploitIntegerLpSolution_ = input.readBool();
15308 bitField4_ |= 0x00200000;
15309 break;
15310 } // case 752
15311 case 760: {
15312 autoDetectGreaterThanAtLeastOneOf_ = input.readBool();
15313 bitField5_ |= 0x01000000;
15314 break;
15315 } // case 760
15316 case 768: {
15317 minimizeWithPropagationRestartPeriod_ = input.readInt32();
15318 bitField0_ |= 0x00200000;
15319 break;
15320 } // case 768
15321 case 776: {
15322 minimizeWithPropagationNumDecisions_ = input.readInt32();
15323 bitField0_ |= 0x00400000;
15324 break;
15325 } // case 776
15326 case 784: {
15327 stopAfterFirstSolution_ = input.readBool();
15328 bitField5_ |= 0x02000000;
15329 break;
15330 } // case 784
15331 case 792: {
15332 binarySearchNumConflicts_ = input.readInt32();
15333 bitField5_ |= 0x00000008;
15334 break;
15335 } // case 792
15336 case 800: {
15337 numSearchWorkers_ = input.readInt32();
15338 bitField2_ |= 0x01000000;
15339 break;
15340 } // case 800
15341 case 808: {
15342 useLnsOnly_ = input.readBool();
15343 bitField5_ |= 0x10000000;
15344 break;
15345 } // case 808
15346 case 824: {
15347 randomizeSearch_ = input.readBool();
15348 bitField6_ |= 0x00000008;
15349 break;
15350 } // case 824
15351 case 832: {
15352 searchRandomizationTolerance_ = input.readInt64();
15353 bitField6_ |= 0x00000010;
15354 break;
15355 } // case 832
15356 case 848: {
15357 instantiateAllVariables_ = input.readBool();
15358 bitField5_ |= 0x00800000;
15359 break;
15360 } // case 848
15361 case 856: {
15362 booleanEncodingLevel_ = input.readInt32();
15363 bitField3_ |= 0x08000000;
15364 break;
15365 } // case 856
15366 case 864: {
15367 useOptionalVariables_ = input.readBool();
15368 bitField6_ |= 0x00000020;
15369 break;
15370 } // case 864
15371 case 872: {
15372 useExactLpReason_ = input.readBool();
15373 bitField6_ |= 0x00000040;
15374 break;
15375 } // case 872
15376 case 880: {
15377 cpModelProbingLevel_ = input.readInt32();
15378 bitField2_ |= 0x00000040;
15379 break;
15380 } // case 880
15381 case 896: {
15382 addLpConstraintsLazily_ = input.readBool();
15383 bitField4_ |= 0x00000100;
15384 break;
15385 } // case 896
15386 case 904: {
15387 shareObjectiveBounds_ = input.readBool();
15388 bitField3_ |= 0x00000001;
15389 break;
15390 } // case 904
15391 case 912: {
15392 shareLevelZeroBounds_ = input.readBool();
15393 bitField3_ |= 0x00000002;
15394 break;
15395 } // case 912
15396 case 921: {
15397 minOrthogonalityForLpConstraints_ = input.readDouble();
15398 bitField4_ |= 0x00000400;
15399 break;
15400 } // case 921
15401 case 928: {
15402 exploitAllLpSolution_ = input.readBool();
15403 bitField4_ |= 0x00400000;
15404 break;
15405 } // case 928
15406 case 936: {
15407 addCgCuts_ = input.readBool();
15408 bitField4_ |= 0x00000002;
15409 break;
15410 } // case 936
15411 case 952: {
15412 maxIntegerRoundingScaling_ = input.readInt32();
15413 bitField4_ |= 0x00000080;
15414 break;
15415 } // case 952
15416 case 960: {
15417 addMirCuts_ = input.readBool();
15418 bitField4_ |= 0x00000004;
15419 break;
15420 } // case 960
15421 case 968: {
15422 maxConsecutiveInactiveCount_ = input.readInt32();
15423 bitField4_ |= 0x00001000;
15424 break;
15425 } // case 968
15426 case 976: {
15427 newConstraintsBatchSize_ = input.readInt32();
15428 bitField4_ |= 0x00010000;
15429 break;
15430 } // case 976
15431 case 984: {
15432 pseudoCostReliabilityThreshold_ = input.readInt64();
15433 bitField5_ |= 0x00000001;
15434 break;
15435 } // case 984
15436 case 993: {
15437 mipMaxBound_ = input.readDouble();
15438 bitField6_ |= 0x00010000;
15439 break;
15440 } // case 993
15441 case 1001: {
15442 mipVarScaling_ = input.readDouble();
15443 bitField6_ |= 0x00020000;
15444 break;
15445 } // case 1001
15446 case 1009: {
15447 mipWantedPrecision_ = input.readDouble();
15448 bitField6_ |= 0x00200000;
15449 break;
15450 } // case 1009
15451 case 1016: {
15452 mipMaxActivityExponent_ = input.readInt32();
15453 bitField6_ |= 0x00400000;
15454 break;
15455 } // case 1016
15456 case 1025: {
15457 mipCheckPrecision_ = input.readDouble();
15458 bitField6_ |= 0x00800000;
15459 break;
15460 } // case 1025
15461 case 1032: {
15462 useRinsLns_ = input.readBool();
15463 bitField5_ |= 0x40000000;
15464 break;
15465 } // case 1032
15466 case 1040: {
15467 exploitBestSolution_ = input.readBool();
15468 bitField4_ |= 0x00800000;
15469 break;
15470 } // case 1040
15471 case 1048: {
15472 exploitObjective_ = input.readBool();
15473 bitField4_ |= 0x02000000;
15474 break;
15475 } // case 1048
15476 case 1056: {
15477 fillTightenedDomainsInResponse_ = input.readBool();
15478 bitField5_ |= 0x00200000;
15479 break;
15480 } // case 1056
15481 case 1064: {
15482 useCombinedNoOverlap_ = input.readBool();
15483 bitField6_ |= 0x00000100;
15484 break;
15485 } // case 1064
15486 case 1072: {
15487 interleaveBatchSize_ = input.readInt32();
15488 bitField2_ |= 0x80000000;
15489 break;
15490 } // case 1072
15491 case 1080: {
15492 catchSigintSignal_ = input.readBool();
15493 bitField6_ |= 0x00000200;
15494 break;
15495 } // case 1080
15496 case 1088: {
15497 interleaveSearch_ = input.readBool();
15498 bitField2_ |= 0x40000000;
15499 break;
15500 } // case 1088
15501 case 1096: {
15502 diversifyLnsParams_ = input.readBool();
15503 bitField6_ |= 0x00000004;
15504 break;
15505 } // case 1096
15506 case 1104: {
15507 maxPresolveIterations_ = input.readInt32();
15508 bitField2_ |= 0x00000010;
15509 break;
15510 } // case 1104
15511 case 1112: {
15512 useBranchingInLp_ = input.readBool();
15513 bitField6_ |= 0x00000080;
15514 break;
15515 } // case 1112
15516 case 1136: {
15517 probingPeriodAtRoot_ = input.readInt64();
15518 bitField4_ |= 0x04000000;
15519 break;
15520 } // case 1136
15521 case 1152: {
15522 useImpliedBounds_ = input.readBool();
15523 bitField6_ |= 0x00000400;
15524 break;
15525 } // case 1152
15526 case 1161: {
15527 mergeNoOverlapWorkLimit_ = input.readDouble();
15528 bitField2_ |= 0x00008000;
15529 break;
15530 } // case 1161
15531 case 1169: {
15532 mergeAtMostOneWorkLimit_ = input.readDouble();
15533 bitField2_ |= 0x00010000;
15534 break;
15535 } // case 1169
15536 case 1176: {
15537 presolveSubstitutionLevel_ = input.readInt32();
15538 bitField2_ |= 0x00020000;
15539 break;
15540 } // case 1176
15541 case 1184: {
15542 maxAllDiffCutSize_ = input.readInt32();
15543 bitField4_ |= 0x00000020;
15544 break;
15545 } // case 1184
15546 case 1192: {
15547 stopAfterPresolve_ = input.readBool();
15548 bitField5_ |= 0x04000000;
15549 break;
15550 } // case 1192
15551 case 1208: {
15552 debugMaxNumPresolveOperations_ = input.readInt32();
15553 bitField3_ |= 0x00000010;
15554 break;
15555 } // case 1208
15556 case 1216: {
15557 addLinMaxCuts_ = input.readBool();
15558 bitField4_ |= 0x00000040;
15559 break;
15560 } // case 1216
15561 case 1224: {
15562 hintConflictLimit_ = input.readInt32();
15563 bitField4_ |= 0x00040000;
15564 break;
15565 } // case 1224
15566 case 1232: {
15567 maxCutRoundsAtLevelZero_ = input.readInt32();
15568 bitField4_ |= 0x00000800;
15569 break;
15570 } // case 1232
15571 case 1241: {
15572 cutMaxActiveCountValue_ = input.readDouble();
15573 bitField4_ |= 0x00002000;
15574 break;
15575 } // case 1241
15576 case 1249: {
15577 cutActiveCountDecay_ = input.readDouble();
15578 bitField4_ |= 0x00004000;
15579 break;
15580 } // case 1249
15581 case 1256: {
15582 cutCleanupTarget_ = input.readInt32();
15583 bitField4_ |= 0x00008000;
15584 break;
15585 } // case 1256
15586 case 1273: {
15587 absoluteGapLimit_ = input.readDouble();
15588 bitField1_ |= 0x00002000;
15589 break;
15590 } // case 1273
15591 case 1281: {
15592 relativeGapLimit_ = input.readDouble();
15593 bitField1_ |= 0x00004000;
15594 break;
15595 } // case 1281
15596 case 1288: {
15597 exploitRelaxationSolution_ = input.readBool();
15598 bitField4_ |= 0x01000000;
15599 break;
15600 } // case 1288
15601 case 1296: {
15602 debugPostsolveWithFullSolver_ = input.readBool();
15603 bitField3_ |= 0x00000008;
15604 break;
15605 } // case 1296
15606 case 1304: {
15607 useSatInprocessing_ = input.readBool();
15608 bitField2_ |= 0x00000100;
15609 break;
15610 } // case 1304
15611 case 1312: {
15612 useFeasibilityPump_ = input.readBool();
15613 bitField5_ |= 0x80000000;
15614 break;
15615 } // case 1312
15616 case 1320: {
15617 int tmpRaw = input.readEnum();
15619 com.google.ortools.sat.SatParameters.FPRoundingMethod.forNumber(tmpRaw);
15620 if (tmpValue == null) {
15621 mergeUnknownVarintField(165, tmpRaw);
15622 } else {
15623 fpRounding_ = tmpRaw;
15624 bitField6_ |= 0x00000002;
15625 }
15626 break;
15627 } // case 1320
15628 case 1328: {
15629 mipAutomaticallyScaleVariables_ = input.readBool();
15630 bitField6_ |= 0x00080000;
15631 break;
15632 } // case 1328
15633 case 1336: {
15634 repairHint_ = input.readBool();
15635 bitField4_ |= 0x00080000;
15636 break;
15637 } // case 1336
15638 case 1344: {
15639 polarityRephaseIncrement_ = input.readInt32();
15640 bitField0_ |= 0x00000010;
15641 break;
15642 } // case 1344
15643 case 1352: {
15644 addZeroHalfCuts_ = input.readBool();
15645 bitField4_ |= 0x00000008;
15646 break;
15647 } // case 1352
15648 case 1360: {
15649 expandAlldiffConstraints_ = input.readBool();
15650 bitField2_ |= 0x00000800;
15651 break;
15652 } // case 1360
15653 case 1370: {
15654 name_ = input.readBytes();
15655 bitField0_ |= 0x00000001;
15656 break;
15657 } // case 1370
15658 case 1376: {
15659 addCliqueCuts_ = input.readBool();
15660 bitField4_ |= 0x00000010;
15661 break;
15662 } // case 1376
15663 case 1384: {
15664 keepAllFeasibleSolutionsInPresolve_ = input.readBool();
15665 bitField5_ |= 0x00100000;
15666 break;
15667 } // case 1384
15668 case 1392: {
15669 presolveExtractIntegerEnforcement_ = input.readBool();
15670 bitField2_ |= 0x00040000;
15671 break;
15672 } // case 1392
15673 case 1400: {
15674 polishLpSolution_ = input.readBool();
15675 bitField6_ |= 0x00000800;
15676 break;
15677 } // case 1400
15678 case 1408: {
15679 useProbingSearch_ = input.readBool();
15680 bitField4_ |= 0x08000000;
15681 break;
15682 } // case 1408
15683 case 1416: {
15684 convertIntervals_ = input.readBool();
15685 bitField6_ |= 0x00001000;
15686 break;
15687 } // case 1416
15688 case 1424: {
15689 permuteVariableRandomly_ = input.readBool();
15690 bitField1_ |= 0x00010000;
15691 break;
15692 } // case 1424
15693 case 1432: {
15694 permutePresolveConstraintOrder_ = input.readBool();
15695 bitField1_ |= 0x00020000;
15696 break;
15697 } // case 1432
15698 case 1440: {
15699 useAbslRandom_ = input.readBool();
15700 bitField1_ |= 0x00040000;
15701 break;
15702 } // case 1440
15703 case 1448: {
15704 disableConstraintExpansion_ = input.readBool();
15705 bitField2_ |= 0x00002000;
15706 break;
15707 } // case 1448
15708 case 1456: {
15709 expandReservoirConstraints_ = input.readBool();
15710 bitField2_ |= 0x00001000;
15711 break;
15712 } // case 1456
15713 case 1464: {
15714 symmetryLevel_ = input.readInt32();
15715 bitField6_ |= 0x00002000;
15716 break;
15717 } // case 1464
15718 case 1482: {
15719 logPrefix_ = input.readBytes();
15720 bitField1_ |= 0x00800000;
15721 break;
15722 } // case 1482
15723 case 1488: {
15724 logToStdout_ = input.readBool();
15725 bitField1_ |= 0x01000000;
15726 break;
15727 } // case 1488
15728 case 1496: {
15729 logToResponse_ = input.readBool();
15730 bitField1_ |= 0x02000000;
15731 break;
15732 } // case 1496
15733 case 1504: {
15734 optimizeWithLbTreeSearch_ = input.readBool();
15735 bitField5_ |= 0x00000004;
15736 break;
15737 } // case 1504
15738 case 1512: {
15739 logSubsolverStatistics_ = input.readBool();
15740 bitField1_ |= 0x00400000;
15741 break;
15742 } // case 1512
15743 case 1521: {
15744 clauseCleanupRatio_ = input.readDouble();
15745 bitField0_ |= 0x00008000;
15746 break;
15747 } // case 1521
15748 case 1528: {
15749 maxDomainSizeWhenEncodingEqNeqConstraints_ = input.readInt32();
15750 bitField3_ |= 0x10000000;
15751 break;
15752 } // case 1528
15753 case 1536: {
15754 fixVariablesToTheirHintedValue_ = input.readBool();
15755 bitField4_ |= 0x00100000;
15756 break;
15757 } // case 1536
15758 case 1544: {
15759 solutionPoolSize_ = input.readInt32();
15760 bitField5_ |= 0x20000000;
15761 break;
15762 } // case 1544
15763 case 1552: {
15764 fillAdditionalSolutionsInResponse_ = input.readBool();
15765 bitField5_ |= 0x00400000;
15766 break;
15767 } // case 1552
15768 case 1560: {
15769 debugCrashOnBadHint_ = input.readBool();
15770 bitField3_ |= 0x00000020;
15771 break;
15772 } // case 1560
15773 case 1568: {
15774 cutLevel_ = input.readInt32();
15775 bitField3_ |= 0x40000000;
15776 break;
15777 } // case 1568
15778 case 1576: {
15779 addObjectiveCut_ = input.readBool();
15780 bitField4_ |= 0x00000001;
15781 break;
15782 } // case 1576
15783 case 1584: {
15784 mipComputeTrueObjectiveBound_ = input.readBool();
15785 bitField6_ |= 0x01000000;
15786 break;
15787 } // case 1584
15788 case 1593: {
15789 mipMaxValidMagnitude_ = input.readDouble();
15790 bitField6_ |= 0x02000000;
15791 break;
15792 } // case 1593
15793 case 1600: {
15794 useTimetablingInNoOverlap2D_ = input.readBool();
15795 bitField3_ |= 0x00400000;
15796 break;
15797 } // case 1600
15798 case 1608: {
15799 presolveInclusionWorkLimit_ = input.readInt64();
15800 bitField2_ |= 0x00080000;
15801 break;
15802 } // case 1608
15803 case 1616: {
15804 ignoreNames_ = input.readBool();
15805 bitField2_ |= 0x00100000;
15806 break;
15807 } // case 1616
15808 case 1624: {
15809 shareBinaryClauses_ = input.readBool();
15810 bitField3_ |= 0x00000004;
15811 break;
15812 } // case 1624
15813 case 1632: {
15814 useShavingInProbingSearch_ = input.readBool();
15815 bitField4_ |= 0x10000000;
15816 break;
15817 } // case 1632
15818 case 1641: {
15819 shavingSearchDeterministicTime_ = input.readDouble();
15820 bitField4_ |= 0x20000000;
15821 break;
15822 } // case 1641
15823 case 1648: {
15824 numWorkers_ = input.readInt32();
15825 bitField2_ |= 0x00800000;
15826 break;
15827 } // case 1648
15828 case 1658: {
15829 com.google.protobuf.ByteString bs = input.readBytes();
15830 ensureSubsolversIsMutable();
15831 subsolvers_.add(bs);
15832 break;
15833 } // case 1658
15834 case 1674: {
15835 com.google.protobuf.ByteString bs = input.readBytes();
15836 ensureIgnoreSubsolversIsMutable();
15837 ignoreSubsolvers_.add(bs);
15838 break;
15839 } // case 1674
15840 case 1682: {
15842 input.readMessage(
15843 com.google.ortools.sat.SatParameters.PARSER,
15844 extensionRegistry);
15845 if (subsolverParamsBuilder_ == null) {
15846 ensureSubsolverParamsIsMutable();
15847 subsolverParams_.add(m);
15848 } else {
15849 subsolverParamsBuilder_.addMessage(m);
15850 }
15851 break;
15852 } // case 1682
15853 case 1688: {
15854 minNumLnsWorkers_ = input.readInt32();
15855 bitField2_ |= 0x02000000;
15856 break;
15857 } // case 1688
15858 case 1697: {
15859 logFrequencyInSeconds_ = input.readDouble();
15860 bitField1_ |= 0x00100000;
15861 break;
15862 } // case 1697
15863 case 1704: {
15864 useEnergeticReasoningInNoOverlap2D_ = input.readBool();
15865 bitField3_ |= 0x00800000;
15866 break;
15867 } // case 1704
15868 case 1712: {
15869 useDualSchedulingHeuristics_ = input.readBool();
15870 bitField3_ |= 0x02000000;
15871 break;
15872 } // case 1712
15873 case 1720: {
15874 useHardPrecedencesInCumulative_ = input.readBool();
15875 bitField3_ |= 0x00080000;
15876 break;
15877 } // case 1720
15878 case 1728: {
15879 detectTableWithCost_ = input.readBool();
15880 bitField2_ |= 0x00000200;
15881 break;
15882 } // case 1728
15883 case 1736: {
15884 tableCompressionLevel_ = input.readInt32();
15885 bitField2_ |= 0x00000400;
15886 break;
15887 } // case 1736
15888 case 1745: {
15889 modelReductionLogFrequencyInSeconds_ = input.readDouble();
15890 bitField1_ |= 0x00200000;
15891 break;
15892 } // case 1745
15893 case 1754: {
15894 com.google.protobuf.ByteString bs = input.readBytes();
15895 ensureExtraSubsolversIsMutable();
15896 extraSubsolvers_.add(bs);
15897 break;
15898 } // case 1754
15899 case 1760: {
15900 exploitAllPrecedences_ = input.readBool();
15901 bitField3_ |= 0x00100000;
15902 break;
15903 } // case 1760
15904 case 1769: {
15905 propagationLoopDetectionFactor_ = input.readDouble();
15906 bitField3_ |= 0x00002000;
15907 break;
15908 } // case 1769
15909 case 1776: {
15910 onlySolveIp_ = input.readBool();
15911 bitField6_ |= 0x00100000;
15912 break;
15913 } // case 1776
15914 case 1784: {
15915 encodeComplexLinearConstraintWithInteger_ = input.readBool();
15916 bitField2_ |= 0x00004000;
15917 break;
15918 } // case 1784
15919 case 1792: {
15920 newLinearPropagation_ = input.readBool();
15921 bitField6_ |= 0x00004000;
15922 break;
15923 } // case 1792
15924 case 1800: {
15925 mipScaleLargeDomain_ = input.readBool();
15926 bitField6_ |= 0x00040000;
15927 break;
15928 } // case 1800
15929 case 1809: {
15930 probingDeterministicTimeLimit_ = input.readDouble();
15931 bitField1_ |= 0x80000000;
15932 break;
15933 } // case 1809
15934 case 1816: {
15935 rootLpIterations_ = input.readInt32();
15936 bitField4_ |= 0x00000200;
15937 break;
15938 } // case 1816
15939 case 1824: {
15940 useObjectiveLbSearch_ = input.readBool();
15941 bitField4_ |= 0x40000000;
15942 break;
15943 } // case 1824
15944 case 1832: {
15945 maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = input.readInt32();
15946 bitField3_ |= 0x00008000;
15947 break;
15948 } // case 1832
15949 case 1840: {
15950 useStrongPropagationInDisjunctive_ = input.readBool();
15951 bitField3_ |= 0x00010000;
15952 break;
15953 } // case 1840
15954 case 1857: {
15955 mipDropTolerance_ = input.readDouble();
15956 bitField6_ |= 0x04000000;
15957 break;
15958 } // case 1857
15959 case 1864: {
15960 inferAllDiffs_ = input.readBool();
15961 bitField2_ |= 0x00200000;
15962 break;
15963 } // case 1864
15964 case 1872: {
15965 findBigLinearOverlap_ = input.readBool();
15966 bitField2_ |= 0x00400000;
15967 break;
15968 } // case 1872
15969 case 1880: {
15970 sharedTreeNumWorkers_ = input.readInt32();
15971 bitField5_ |= 0x00004000;
15972 break;
15973 } // case 1880
15974 case 1888: {
15975 useSharedTreeSearch_ = input.readBool();
15976 bitField5_ |= 0x00008000;
15977 break;
15978 } // case 1888
15979 case 1897: {
15980 sharedTreeWorkerObjectiveSplitProbability_ = input.readDouble();
15981 bitField5_ |= 0x00010000;
15982 break;
15983 } // case 1897
15984 case 1904: {
15985 sharedTreeMaxNodesPerWorker_ = input.readInt32();
15986 bitField5_ |= 0x00020000;
15987 break;
15988 } // case 1904
15989 case 1912: {
15990 int tmpRaw = input.readEnum();
15992 com.google.ortools.sat.SatParameters.SharedTreeSplitStrategy.forNumber(tmpRaw);
15993 if (tmpValue == null) {
15994 mergeUnknownVarintField(239, tmpRaw);
15995 } else {
15996 sharedTreeSplitStrategy_ = tmpRaw;
15997 bitField5_ |= 0x00040000;
15998 }
15999 break;
16000 } // case 1912
16001 case 1920: {
16002 testFeasibilityJump_ = input.readBool();
16003 bitField5_ |= 0x00000020;
16004 break;
16005 } // case 1920
16006 case 1937: {
16007 feasibilityJumpDecay_ = input.readDouble();
16008 bitField5_ |= 0x00000100;
16009 break;
16010 } // case 1937
16011 case 1952: {
16012 numViolationLs_ = input.readInt32();
16013 bitField5_ |= 0x00001000;
16014 break;
16015 } // case 1952
16016 case 1960: {
16017 feasibilityJumpMaxNumValuesScanned_ = input.readInt64();
16018 bitField5_ |= 0x00000040;
16019 break;
16020 } // case 1960
16021 case 1968: {
16022 feasibilityJumpProtectLinearFeasibility_ = input.readBool();
16023 bitField5_ |= 0x00000080;
16024 break;
16025 } // case 1968
16026 case 1977: {
16027 feasibilityJumpVarRandomizationProbability_ = input.readDouble();
16028 bitField5_ |= 0x00000200;
16029 break;
16030 } // case 1977
16031 case 1985: {
16032 feasibilityJumpVarPerburbationRangeRatio_ = input.readDouble();
16033 bitField5_ |= 0x00000400;
16034 break;
16035 } // case 1985
16036 case 1992: {
16037 violationLsPerturbationPeriod_ = input.readInt32();
16038 bitField5_ |= 0x00002000;
16039 break;
16040 } // case 1992
16041 case 2000: {
16042 feasibilityJumpEnableRestarts_ = input.readBool();
16043 bitField5_ |= 0x00000800;
16044 break;
16045 } // case 2000
16046 case 2008: {
16047 usePairwiseReasoningInNoOverlap2D_ = input.readBool();
16048 bitField3_ |= 0x01000000;
16049 break;
16050 } // case 2008
16051 case 2016: {
16052 stopAfterRootPropagation_ = input.readBool();
16053 bitField5_ |= 0x08000000;
16054 break;
16055 } // case 2016
16056 case 2024: {
16057 useObjectiveShavingSearch_ = input.readBool();
16058 bitField4_ |= 0x80000000;
16059 break;
16060 } // case 2024
16061 case 2040: {
16062 useLbRelaxLns_ = input.readBool();
16063 bitField6_ |= 0x00000001;
16064 break;
16065 } // case 2040
16066 case 2048: {
16067 linearSplitSize_ = input.readInt32();
16068 bitField6_ |= 0x00008000;
16069 break;
16070 } // case 2048
16071 default: {
16072 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
16073 done = true; // was an endgroup tag
16074 }
16075 break;
16076 } // default:
16077 } // switch (tag)
16078 } // while (!done)
16079 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
16080 throw e.unwrapIOException();
16081 } finally {
16082 onChanged();
16083 } // finally
16084 return this;
16085 }
16086 private int bitField0_;
16087 private int bitField1_;
16088 private int bitField2_;
16089 private int bitField3_;
16090 private int bitField4_;
16091 private int bitField5_;
16092 private int bitField6_;
16093
16094 private java.lang.Object name_ = "";
16104 public boolean hasName() {
16105 return ((bitField0_ & 0x00000001) != 0);
16106 }
16116 public java.lang.String getName() {
16117 java.lang.Object ref = name_;
16118 if (!(ref instanceof java.lang.String)) {
16119 com.google.protobuf.ByteString bs =
16120 (com.google.protobuf.ByteString) ref;
16121 java.lang.String s = bs.toStringUtf8();
16122 if (bs.isValidUtf8()) {
16123 name_ = s;
16124 }
16125 return s;
16126 } else {
16127 return (java.lang.String) ref;
16128 }
16129 }
16139 public com.google.protobuf.ByteString
16141 java.lang.Object ref = name_;
16142 if (ref instanceof String) {
16143 com.google.protobuf.ByteString b =
16144 com.google.protobuf.ByteString.copyFromUtf8(
16145 (java.lang.String) ref);
16146 name_ = b;
16147 return b;
16148 } else {
16149 return (com.google.protobuf.ByteString) ref;
16150 }
16151 }
16163 java.lang.String value) {
16164 if (value == null) { throw new NullPointerException(); }
16165 name_ = value;
16166 bitField0_ |= 0x00000001;
16167 onChanged();
16168 return this;
16169 }
16180 name_ = getDefaultInstance().getName();
16181 bitField0_ = (bitField0_ & ~0x00000001);
16182 onChanged();
16183 return this;
16184 }
16196 com.google.protobuf.ByteString value) {
16197 if (value == null) { throw new NullPointerException(); }
16198 name_ = value;
16199 bitField0_ |= 0x00000001;
16200 onChanged();
16201 return this;
16202 }
16203
16204 private int preferredVariableOrder_ = 0;
16209 @java.lang.Override public boolean hasPreferredVariableOrder() {
16210 return ((bitField0_ & 0x00000002) != 0);
16211 }
16216 @java.lang.Override
16218 com.google.ortools.sat.SatParameters.VariableOrder result = com.google.ortools.sat.SatParameters.VariableOrder.forNumber(preferredVariableOrder_);
16219 return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
16220 }
16226 public Builder setPreferredVariableOrder(com.google.ortools.sat.SatParameters.VariableOrder value) {
16227 if (value == null) {
16228 throw new NullPointerException();
16229 }
16230 bitField0_ |= 0x00000002;
16231 preferredVariableOrder_ = value.getNumber();
16232 onChanged();
16233 return this;
16234 }
16240 bitField0_ = (bitField0_ & ~0x00000002);
16241 preferredVariableOrder_ = 0;
16242 onChanged();
16243 return this;
16244 }
16245
16246 private int initialPolarity_ = 1;
16251 @java.lang.Override public boolean hasInitialPolarity() {
16252 return ((bitField0_ & 0x00000004) != 0);
16253 }
16258 @java.lang.Override
16260 com.google.ortools.sat.SatParameters.Polarity result = com.google.ortools.sat.SatParameters.Polarity.forNumber(initialPolarity_);
16261 return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
16262 }
16268 public Builder setInitialPolarity(com.google.ortools.sat.SatParameters.Polarity value) {
16269 if (value == null) {
16270 throw new NullPointerException();
16271 }
16272 bitField0_ |= 0x00000004;
16273 initialPolarity_ = value.getNumber();
16274 onChanged();
16275 return this;
16276 }
16282 bitField0_ = (bitField0_ & ~0x00000004);
16283 initialPolarity_ = 1;
16284 onChanged();
16285 return this;
16286 }
16287
16288 private boolean usePhaseSaving_ = true;
16307 @java.lang.Override
16308 public boolean hasUsePhaseSaving() {
16309 return ((bitField0_ & 0x00000008) != 0);
16310 }
16329 @java.lang.Override
16330 public boolean getUsePhaseSaving() {
16331 return usePhaseSaving_;
16332 }
16352 public Builder setUsePhaseSaving(boolean value) {
16353
16354 usePhaseSaving_ = value;
16355 bitField0_ |= 0x00000008;
16356 onChanged();
16357 return this;
16358 }
16378 bitField0_ = (bitField0_ & ~0x00000008);
16379 usePhaseSaving_ = true;
16380 onChanged();
16381 return this;
16382 }
16383
16384 private int polarityRephaseIncrement_ = 1000;
16395 @java.lang.Override
16397 return ((bitField0_ & 0x00000010) != 0);
16398 }
16409 @java.lang.Override
16411 return polarityRephaseIncrement_;
16412 }
16425
16426 polarityRephaseIncrement_ = value;
16427 bitField0_ |= 0x00000010;
16428 onChanged();
16429 return this;
16430 }
16442 bitField0_ = (bitField0_ & ~0x00000010);
16443 polarityRephaseIncrement_ = 1000;
16444 onChanged();
16445 return this;
16446 }
16447
16448 private double randomPolarityRatio_ ;
16461 @java.lang.Override
16462 public boolean hasRandomPolarityRatio() {
16463 return ((bitField0_ & 0x00000020) != 0);
16464 }
16477 @java.lang.Override
16478 public double getRandomPolarityRatio() {
16479 return randomPolarityRatio_;
16480 }
16494 public Builder setRandomPolarityRatio(double value) {
16495
16496 randomPolarityRatio_ = value;
16497 bitField0_ |= 0x00000020;
16498 onChanged();
16499 return this;
16500 }
16514 bitField0_ = (bitField0_ & ~0x00000020);
16515 randomPolarityRatio_ = 0D;
16516 onChanged();
16517 return this;
16518 }
16519
16520 private double randomBranchesRatio_ ;
16531 @java.lang.Override
16532 public boolean hasRandomBranchesRatio() {
16533 return ((bitField0_ & 0x00000040) != 0);
16534 }
16545 @java.lang.Override
16546 public double getRandomBranchesRatio() {
16547 return randomBranchesRatio_;
16548 }
16560 public Builder setRandomBranchesRatio(double value) {
16561
16562 randomBranchesRatio_ = value;
16563 bitField0_ |= 0x00000040;
16564 onChanged();
16565 return this;
16566 }
16578 bitField0_ = (bitField0_ & ~0x00000040);
16579 randomBranchesRatio_ = 0D;
16580 onChanged();
16581 return this;
16582 }
16583
16584 private boolean useErwaHeuristic_ ;
16595 @java.lang.Override
16596 public boolean hasUseErwaHeuristic() {
16597 return ((bitField0_ & 0x00000080) != 0);
16598 }
16609 @java.lang.Override
16610 public boolean getUseErwaHeuristic() {
16611 return useErwaHeuristic_;
16612 }
16624 public Builder setUseErwaHeuristic(boolean value) {
16625
16626 useErwaHeuristic_ = value;
16627 bitField0_ |= 0x00000080;
16628 onChanged();
16629 return this;
16630 }
16642 bitField0_ = (bitField0_ & ~0x00000080);
16643 useErwaHeuristic_ = false;
16644 onChanged();
16645 return this;
16646 }
16647
16648 private double initialVariablesActivity_ ;
16662 @java.lang.Override
16664 return ((bitField0_ & 0x00000100) != 0);
16665 }
16679 @java.lang.Override
16681 return initialVariablesActivity_;
16682 }
16698
16699 initialVariablesActivity_ = value;
16700 bitField0_ |= 0x00000100;
16701 onChanged();
16702 return this;
16703 }
16718 bitField0_ = (bitField0_ & ~0x00000100);
16719 initialVariablesActivity_ = 0D;
16720 onChanged();
16721 return this;
16722 }
16723
16724 private boolean alsoBumpVariablesInConflictReasons_ ;
16736 @java.lang.Override
16738 return ((bitField0_ & 0x00000200) != 0);
16739 }
16751 @java.lang.Override
16753 return alsoBumpVariablesInConflictReasons_;
16754 }
16768
16769 alsoBumpVariablesInConflictReasons_ = value;
16770 bitField0_ |= 0x00000200;
16771 onChanged();
16772 return this;
16773 }
16786 bitField0_ = (bitField0_ & ~0x00000200);
16787 alsoBumpVariablesInConflictReasons_ = false;
16788 onChanged();
16789 return this;
16790 }
16791
16792 private int minimizationAlgorithm_ = 2;
16797 @java.lang.Override public boolean hasMinimizationAlgorithm() {
16798 return ((bitField0_ & 0x00000400) != 0);
16799 }
16804 @java.lang.Override
16806 com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm result = com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.forNumber(minimizationAlgorithm_);
16807 return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
16808 }
16814 public Builder setMinimizationAlgorithm(com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value) {
16815 if (value == null) {
16816 throw new NullPointerException();
16817 }
16818 bitField0_ |= 0x00000400;
16819 minimizationAlgorithm_ = value.getNumber();
16820 onChanged();
16821 return this;
16822 }
16828 bitField0_ = (bitField0_ & ~0x00000400);
16829 minimizationAlgorithm_ = 2;
16830 onChanged();
16831 return this;
16832 }
16833
16834 private int binaryMinimizationAlgorithm_ = 1;
16839 @java.lang.Override public boolean hasBinaryMinimizationAlgorithm() {
16840 return ((bitField0_ & 0x00000800) != 0);
16841 }
16846 @java.lang.Override
16848 com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm result = com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.forNumber(binaryMinimizationAlgorithm_);
16849 return result == null ? com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.BINARY_MINIMIZATION_FIRST : result;
16850 }
16856 public Builder setBinaryMinimizationAlgorithm(com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value) {
16857 if (value == null) {
16858 throw new NullPointerException();
16859 }
16860 bitField0_ |= 0x00000800;
16861 binaryMinimizationAlgorithm_ = value.getNumber();
16862 onChanged();
16863 return this;
16864 }
16870 bitField0_ = (bitField0_ & ~0x00000800);
16871 binaryMinimizationAlgorithm_ = 1;
16872 onChanged();
16873 return this;
16874 }
16875
16876 private boolean subsumptionDuringConflictAnalysis_ = true;
16888 @java.lang.Override
16890 return ((bitField0_ & 0x00001000) != 0);
16891 }
16903 @java.lang.Override
16905 return subsumptionDuringConflictAnalysis_;
16906 }
16920
16921 subsumptionDuringConflictAnalysis_ = value;
16922 bitField0_ |= 0x00001000;
16923 onChanged();
16924 return this;
16925 }
16938 bitField0_ = (bitField0_ & ~0x00001000);
16939 subsumptionDuringConflictAnalysis_ = true;
16940 onChanged();
16941 return this;
16942 }
16943
16944 private int clauseCleanupPeriod_ = 10000;
16953 @java.lang.Override
16954 public boolean hasClauseCleanupPeriod() {
16955 return ((bitField0_ & 0x00002000) != 0);
16956 }
16965 @java.lang.Override
16967 return clauseCleanupPeriod_;
16968 }
16979
16980 clauseCleanupPeriod_ = value;
16981 bitField0_ |= 0x00002000;
16982 onChanged();
16983 return this;
16984 }
16994 bitField0_ = (bitField0_ & ~0x00002000);
16995 clauseCleanupPeriod_ = 10000;
16996 onChanged();
16997 return this;
16998 }
16999
17000 private int clauseCleanupTarget_ ;
17010 @java.lang.Override
17011 public boolean hasClauseCleanupTarget() {
17012 return ((bitField0_ & 0x00004000) != 0);
17013 }
17023 @java.lang.Override
17025 return clauseCleanupTarget_;
17026 }
17038
17039 clauseCleanupTarget_ = value;
17040 bitField0_ |= 0x00004000;
17041 onChanged();
17042 return this;
17043 }
17054 bitField0_ = (bitField0_ & ~0x00004000);
17055 clauseCleanupTarget_ = 0;
17056 onChanged();
17057 return this;
17058 }
17059
17060 private double clauseCleanupRatio_ = 0.5D;
17071 @java.lang.Override
17072 public boolean hasClauseCleanupRatio() {
17073 return ((bitField0_ & 0x00008000) != 0);
17074 }
17085 @java.lang.Override
17086 public double getClauseCleanupRatio() {
17087 return clauseCleanupRatio_;
17088 }
17100 public Builder setClauseCleanupRatio(double value) {
17101
17102 clauseCleanupRatio_ = value;
17103 bitField0_ |= 0x00008000;
17104 onChanged();
17105 return this;
17106 }
17118 bitField0_ = (bitField0_ & ~0x00008000);
17119 clauseCleanupRatio_ = 0.5D;
17120 onChanged();
17121 return this;
17122 }
17123
17124 private int clauseCleanupProtection_ = 0;
17129 @java.lang.Override public boolean hasClauseCleanupProtection() {
17130 return ((bitField0_ & 0x00010000) != 0);
17131 }
17136 @java.lang.Override
17138 com.google.ortools.sat.SatParameters.ClauseProtection result = com.google.ortools.sat.SatParameters.ClauseProtection.forNumber(clauseCleanupProtection_);
17139 return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
17140 }
17146 public Builder setClauseCleanupProtection(com.google.ortools.sat.SatParameters.ClauseProtection value) {
17147 if (value == null) {
17148 throw new NullPointerException();
17149 }
17150 bitField0_ |= 0x00010000;
17151 clauseCleanupProtection_ = value.getNumber();
17152 onChanged();
17153 return this;
17154 }
17160 bitField0_ = (bitField0_ & ~0x00010000);
17161 clauseCleanupProtection_ = 0;
17162 onChanged();
17163 return this;
17164 }
17165
17166 private int clauseCleanupLbdBound_ = 5;
17176 @java.lang.Override
17177 public boolean hasClauseCleanupLbdBound() {
17178 return ((bitField0_ & 0x00020000) != 0);
17179 }
17189 @java.lang.Override
17191 return clauseCleanupLbdBound_;
17192 }
17204
17205 clauseCleanupLbdBound_ = value;
17206 bitField0_ |= 0x00020000;
17207 onChanged();
17208 return this;
17209 }
17220 bitField0_ = (bitField0_ & ~0x00020000);
17221 clauseCleanupLbdBound_ = 5;
17222 onChanged();
17223 return this;
17224 }
17225
17226 private int clauseCleanupOrdering_ = 0;
17231 @java.lang.Override public boolean hasClauseCleanupOrdering() {
17232 return ((bitField0_ & 0x00040000) != 0);
17233 }
17238 @java.lang.Override
17240 com.google.ortools.sat.SatParameters.ClauseOrdering result = com.google.ortools.sat.SatParameters.ClauseOrdering.forNumber(clauseCleanupOrdering_);
17241 return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
17242 }
17248 public Builder setClauseCleanupOrdering(com.google.ortools.sat.SatParameters.ClauseOrdering value) {
17249 if (value == null) {
17250 throw new NullPointerException();
17251 }
17252 bitField0_ |= 0x00040000;
17253 clauseCleanupOrdering_ = value.getNumber();
17254 onChanged();
17255 return this;
17256 }
17262 bitField0_ = (bitField0_ & ~0x00040000);
17263 clauseCleanupOrdering_ = 0;
17264 onChanged();
17265 return this;
17266 }
17267
17268 private int pbCleanupIncrement_ = 200;
17277 @java.lang.Override
17278 public boolean hasPbCleanupIncrement() {
17279 return ((bitField0_ & 0x00080000) != 0);
17280 }
17289 @java.lang.Override
17291 return pbCleanupIncrement_;
17292 }
17302 public Builder setPbCleanupIncrement(int value) {
17303
17304 pbCleanupIncrement_ = value;
17305 bitField0_ |= 0x00080000;
17306 onChanged();
17307 return this;
17308 }
17318 bitField0_ = (bitField0_ & ~0x00080000);
17319 pbCleanupIncrement_ = 200;
17320 onChanged();
17321 return this;
17322 }
17323
17324 private double pbCleanupRatio_ = 0.5D;
17329 @java.lang.Override
17330 public boolean hasPbCleanupRatio() {
17331 return ((bitField0_ & 0x00100000) != 0);
17332 }
17337 @java.lang.Override
17338 public double getPbCleanupRatio() {
17339 return pbCleanupRatio_;
17340 }
17346 public Builder setPbCleanupRatio(double value) {
17347
17348 pbCleanupRatio_ = value;
17349 bitField0_ |= 0x00100000;
17350 onChanged();
17351 return this;
17352 }
17358 bitField0_ = (bitField0_ & ~0x00100000);
17359 pbCleanupRatio_ = 0.5D;
17360 onChanged();
17361 return this;
17362 }
17363
17364 private int minimizeWithPropagationRestartPeriod_ = 10;
17385 @java.lang.Override
17387 return ((bitField0_ & 0x00200000) != 0);
17388 }
17409 @java.lang.Override
17411 return minimizeWithPropagationRestartPeriod_;
17412 }
17435
17436 minimizeWithPropagationRestartPeriod_ = value;
17437 bitField0_ |= 0x00200000;
17438 onChanged();
17439 return this;
17440 }
17462 bitField0_ = (bitField0_ & ~0x00200000);
17463 minimizeWithPropagationRestartPeriod_ = 10;
17464 onChanged();
17465 return this;
17466 }
17467
17468 private int minimizeWithPropagationNumDecisions_ = 1000;
17473 @java.lang.Override
17475 return ((bitField0_ & 0x00400000) != 0);
17476 }
17481 @java.lang.Override
17483 return minimizeWithPropagationNumDecisions_;
17484 }
17491
17492 minimizeWithPropagationNumDecisions_ = value;
17493 bitField0_ |= 0x00400000;
17494 onChanged();
17495 return this;
17496 }
17502 bitField0_ = (bitField0_ & ~0x00400000);
17503 minimizeWithPropagationNumDecisions_ = 1000;
17504 onChanged();
17505 return this;
17506 }
17507
17508 private double variableActivityDecay_ = 0.8D;
17524 @java.lang.Override
17525 public boolean hasVariableActivityDecay() {
17526 return ((bitField0_ & 0x00800000) != 0);
17527 }
17543 @java.lang.Override
17545 return variableActivityDecay_;
17546 }
17563 public Builder setVariableActivityDecay(double value) {
17564
17565 variableActivityDecay_ = value;
17566 bitField0_ |= 0x00800000;
17567 onChanged();
17568 return this;
17569 }
17586 bitField0_ = (bitField0_ & ~0x00800000);
17587 variableActivityDecay_ = 0.8D;
17588 onChanged();
17589 return this;
17590 }
17591
17592 private double maxVariableActivityValue_ = 1e+100D;
17597 @java.lang.Override
17599 return ((bitField0_ & 0x01000000) != 0);
17600 }
17605 @java.lang.Override
17607 return maxVariableActivityValue_;
17608 }
17615
17616 maxVariableActivityValue_ = value;
17617 bitField0_ |= 0x01000000;
17618 onChanged();
17619 return this;
17620 }
17626 bitField0_ = (bitField0_ & ~0x01000000);
17627 maxVariableActivityValue_ = 1e+100D;
17628 onChanged();
17629 return this;
17630 }
17631
17632 private double glucoseMaxDecay_ = 0.95D;
17645 @java.lang.Override
17646 public boolean hasGlucoseMaxDecay() {
17647 return ((bitField0_ & 0x02000000) != 0);
17648 }
17661 @java.lang.Override
17662 public double getGlucoseMaxDecay() {
17663 return glucoseMaxDecay_;
17664 }
17678 public Builder setGlucoseMaxDecay(double value) {
17679
17680 glucoseMaxDecay_ = value;
17681 bitField0_ |= 0x02000000;
17682 onChanged();
17683 return this;
17684 }
17698 bitField0_ = (bitField0_ & ~0x02000000);
17699 glucoseMaxDecay_ = 0.95D;
17700 onChanged();
17701 return this;
17702 }
17703
17704 private double glucoseDecayIncrement_ = 0.01D;
17709 @java.lang.Override
17710 public boolean hasGlucoseDecayIncrement() {
17711 return ((bitField0_ & 0x04000000) != 0);
17712 }
17717 @java.lang.Override
17719 return glucoseDecayIncrement_;
17720 }
17726 public Builder setGlucoseDecayIncrement(double value) {
17727
17728 glucoseDecayIncrement_ = value;
17729 bitField0_ |= 0x04000000;
17730 onChanged();
17731 return this;
17732 }
17738 bitField0_ = (bitField0_ & ~0x04000000);
17739 glucoseDecayIncrement_ = 0.01D;
17740 onChanged();
17741 return this;
17742 }
17743
17744 private int glucoseDecayIncrementPeriod_ = 5000;
17749 @java.lang.Override
17751 return ((bitField0_ & 0x08000000) != 0);
17752 }
17757 @java.lang.Override
17759 return glucoseDecayIncrementPeriod_;
17760 }
17767
17768 glucoseDecayIncrementPeriod_ = value;
17769 bitField0_ |= 0x08000000;
17770 onChanged();
17771 return this;
17772 }
17778 bitField0_ = (bitField0_ & ~0x08000000);
17779 glucoseDecayIncrementPeriod_ = 5000;
17780 onChanged();
17781 return this;
17782 }
17783
17784 private double clauseActivityDecay_ = 0.999D;
17793 @java.lang.Override
17794 public boolean hasClauseActivityDecay() {
17795 return ((bitField0_ & 0x10000000) != 0);
17796 }
17805 @java.lang.Override
17806 public double getClauseActivityDecay() {
17807 return clauseActivityDecay_;
17808 }
17818 public Builder setClauseActivityDecay(double value) {
17819
17820 clauseActivityDecay_ = value;
17821 bitField0_ |= 0x10000000;
17822 onChanged();
17823 return this;
17824 }
17834 bitField0_ = (bitField0_ & ~0x10000000);
17835 clauseActivityDecay_ = 0.999D;
17836 onChanged();
17837 return this;
17838 }
17839
17840 private double maxClauseActivityValue_ = 1e+20D;
17845 @java.lang.Override
17846 public boolean hasMaxClauseActivityValue() {
17847 return ((bitField0_ & 0x20000000) != 0);
17848 }
17853 @java.lang.Override
17855 return maxClauseActivityValue_;
17856 }
17862 public Builder setMaxClauseActivityValue(double value) {
17863
17864 maxClauseActivityValue_ = value;
17865 bitField0_ |= 0x20000000;
17866 onChanged();
17867 return this;
17868 }
17874 bitField0_ = (bitField0_ & ~0x20000000);
17875 maxClauseActivityValue_ = 1e+20D;
17876 onChanged();
17877 return this;
17878 }
17879
17880 private java.util.List<java.lang.Integer> restartAlgorithms_ =
17881 java.util.Collections.emptyList();
17882 private void ensureRestartAlgorithmsIsMutable() {
17883 if (!((bitField0_ & 0x40000000) != 0)) {
17884 restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>(restartAlgorithms_);
17885 bitField0_ |= 0x40000000;
17886 }
17887 }
17904 public java.util.List<com.google.ortools.sat.SatParameters.RestartAlgorithm> getRestartAlgorithmsList() {
17905 return new com.google.protobuf.Internal.ListAdapter<
17906 java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
17907 }
17925 return restartAlgorithms_.size();
17926 }
17945 return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
17946 }
17966 int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value) {
17967 if (value == null) {
17968 throw new NullPointerException();
17969 }
17970 ensureRestartAlgorithmsIsMutable();
17971 restartAlgorithms_.set(index, value.getNumber());
17972 onChanged();
17973 return this;
17974 }
17992 public Builder addRestartAlgorithms(com.google.ortools.sat.SatParameters.RestartAlgorithm value) {
17993 if (value == null) {
17994 throw new NullPointerException();
17995 }
17996 ensureRestartAlgorithmsIsMutable();
17997 restartAlgorithms_.add(value.getNumber());
17998 onChanged();
17999 return this;
18000 }
18019 java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm> values) {
18020 ensureRestartAlgorithmsIsMutable();
18021 for (com.google.ortools.sat.SatParameters.RestartAlgorithm value : values) {
18022 restartAlgorithms_.add(value.getNumber());
18023 }
18024 onChanged();
18025 return this;
18026 }
18044 restartAlgorithms_ = java.util.Collections.emptyList();
18045 bitField0_ = (bitField0_ & ~0x40000000);
18046 onChanged();
18047 return this;
18048 }
18049
18050 private java.lang.Object defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
18056 return ((bitField0_ & 0x80000000) != 0);
18057 }
18062 public java.lang.String getDefaultRestartAlgorithms() {
18063 java.lang.Object ref = defaultRestartAlgorithms_;
18064 if (!(ref instanceof java.lang.String)) {
18065 com.google.protobuf.ByteString bs =
18066 (com.google.protobuf.ByteString) ref;
18067 java.lang.String s = bs.toStringUtf8();
18068 if (bs.isValidUtf8()) {
18069 defaultRestartAlgorithms_ = s;
18070 }
18071 return s;
18072 } else {
18073 return (java.lang.String) ref;
18074 }
18075 }
18080 public com.google.protobuf.ByteString
18082 java.lang.Object ref = defaultRestartAlgorithms_;
18083 if (ref instanceof String) {
18084 com.google.protobuf.ByteString b =
18085 com.google.protobuf.ByteString.copyFromUtf8(
18086 (java.lang.String) ref);
18087 defaultRestartAlgorithms_ = b;
18088 return b;
18089 } else {
18090 return (com.google.protobuf.ByteString) ref;
18091 }
18092 }
18099 java.lang.String value) {
18100 if (value == null) { throw new NullPointerException(); }
18101 defaultRestartAlgorithms_ = value;
18102 bitField0_ |= 0x80000000;
18103 onChanged();
18104 return this;
18105 }
18111 defaultRestartAlgorithms_ = getDefaultInstance().getDefaultRestartAlgorithms();
18112 bitField0_ = (bitField0_ & ~0x80000000);
18113 onChanged();
18114 return this;
18115 }
18122 com.google.protobuf.ByteString value) {
18123 if (value == null) { throw new NullPointerException(); }
18124 defaultRestartAlgorithms_ = value;
18125 bitField0_ |= 0x80000000;
18126 onChanged();
18127 return this;
18128 }
18129
18130 private int restartPeriod_ = 50;
18140 @java.lang.Override
18141 public boolean hasRestartPeriod() {
18142 return ((bitField1_ & 0x00000001) != 0);
18143 }
18153 @java.lang.Override
18154 public int getRestartPeriod() {
18155 return restartPeriod_;
18156 }
18167 public Builder setRestartPeriod(int value) {
18168
18169 restartPeriod_ = value;
18170 bitField1_ |= 0x00000001;
18171 onChanged();
18172 return this;
18173 }
18184 bitField1_ = (bitField1_ & ~0x00000001);
18185 restartPeriod_ = 50;
18186 onChanged();
18187 return this;
18188 }
18189
18190 private int restartRunningWindowSize_ = 50;
18199 @java.lang.Override
18201 return ((bitField1_ & 0x00000002) != 0);
18202 }
18211 @java.lang.Override
18213 return restartRunningWindowSize_;
18214 }
18225
18226 restartRunningWindowSize_ = value;
18227 bitField1_ |= 0x00000002;
18228 onChanged();
18229 return this;
18230 }
18240 bitField1_ = (bitField1_ & ~0x00000002);
18241 restartRunningWindowSize_ = 50;
18242 onChanged();
18243 return this;
18244 }
18245
18246 private double restartDlAverageRatio_ = 1D;
18256 @java.lang.Override
18257 public boolean hasRestartDlAverageRatio() {
18258 return ((bitField1_ & 0x00000004) != 0);
18259 }
18269 @java.lang.Override
18271 return restartDlAverageRatio_;
18272 }
18283 public Builder setRestartDlAverageRatio(double value) {
18284
18285 restartDlAverageRatio_ = value;
18286 bitField1_ |= 0x00000004;
18287 onChanged();
18288 return this;
18289 }
18300 bitField1_ = (bitField1_ & ~0x00000004);
18301 restartDlAverageRatio_ = 1D;
18302 onChanged();
18303 return this;
18304 }
18305
18306 private double restartLbdAverageRatio_ = 1D;
18311 @java.lang.Override
18312 public boolean hasRestartLbdAverageRatio() {
18313 return ((bitField1_ & 0x00000008) != 0);
18314 }
18319 @java.lang.Override
18321 return restartLbdAverageRatio_;
18322 }
18328 public Builder setRestartLbdAverageRatio(double value) {
18329
18330 restartLbdAverageRatio_ = value;
18331 bitField1_ |= 0x00000008;
18332 onChanged();
18333 return this;
18334 }
18340 bitField1_ = (bitField1_ & ~0x00000008);
18341 restartLbdAverageRatio_ = 1D;
18342 onChanged();
18343 return this;
18344 }
18345
18346 private boolean useBlockingRestart_ ;
18357 @java.lang.Override
18358 public boolean hasUseBlockingRestart() {
18359 return ((bitField1_ & 0x00000010) != 0);
18360 }
18371 @java.lang.Override
18372 public boolean getUseBlockingRestart() {
18373 return useBlockingRestart_;
18374 }
18386 public Builder setUseBlockingRestart(boolean value) {
18387
18388 useBlockingRestart_ = value;
18389 bitField1_ |= 0x00000010;
18390 onChanged();
18391 return this;
18392 }
18404 bitField1_ = (bitField1_ & ~0x00000010);
18405 useBlockingRestart_ = false;
18406 onChanged();
18407 return this;
18408 }
18409
18410 private int blockingRestartWindowSize_ = 5000;
18415 @java.lang.Override
18417 return ((bitField1_ & 0x00000020) != 0);
18418 }
18423 @java.lang.Override
18425 return blockingRestartWindowSize_;
18426 }
18433
18434 blockingRestartWindowSize_ = value;
18435 bitField1_ |= 0x00000020;
18436 onChanged();
18437 return this;
18438 }
18444 bitField1_ = (bitField1_ & ~0x00000020);
18445 blockingRestartWindowSize_ = 5000;
18446 onChanged();
18447 return this;
18448 }
18449
18450 private double blockingRestartMultiplier_ = 1.4D;
18455 @java.lang.Override
18457 return ((bitField1_ & 0x00000040) != 0);
18458 }
18463 @java.lang.Override
18465 return blockingRestartMultiplier_;
18466 }
18473
18474 blockingRestartMultiplier_ = value;
18475 bitField1_ |= 0x00000040;
18476 onChanged();
18477 return this;
18478 }
18484 bitField1_ = (bitField1_ & ~0x00000040);
18485 blockingRestartMultiplier_ = 1.4D;
18486 onChanged();
18487 return this;
18488 }
18489
18490 private int numConflictsBeforeStrategyChanges_ ;
18501 @java.lang.Override
18503 return ((bitField1_ & 0x00000080) != 0);
18504 }
18515 @java.lang.Override
18517 return numConflictsBeforeStrategyChanges_;
18518 }
18531
18532 numConflictsBeforeStrategyChanges_ = value;
18533 bitField1_ |= 0x00000080;
18534 onChanged();
18535 return this;
18536 }
18548 bitField1_ = (bitField1_ & ~0x00000080);
18549 numConflictsBeforeStrategyChanges_ = 0;
18550 onChanged();
18551 return this;
18552 }
18553
18554 private double strategyChangeIncreaseRatio_ ;
18564 @java.lang.Override
18566 return ((bitField1_ & 0x00000100) != 0);
18567 }
18577 @java.lang.Override
18579 return strategyChangeIncreaseRatio_;
18580 }
18592
18593 strategyChangeIncreaseRatio_ = value;
18594 bitField1_ |= 0x00000100;
18595 onChanged();
18596 return this;
18597 }
18608 bitField1_ = (bitField1_ & ~0x00000100);
18609 strategyChangeIncreaseRatio_ = 0D;
18610 onChanged();
18611 return this;
18612 }
18613
18614 private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
18624 @java.lang.Override
18625 public boolean hasMaxTimeInSeconds() {
18626 return ((bitField1_ & 0x00000200) != 0);
18627 }
18637 @java.lang.Override
18638 public double getMaxTimeInSeconds() {
18639 return maxTimeInSeconds_;
18640 }
18651 public Builder setMaxTimeInSeconds(double value) {
18652
18653 maxTimeInSeconds_ = value;
18654 bitField1_ |= 0x00000200;
18655 onChanged();
18656 return this;
18657 }
18668 bitField1_ = (bitField1_ & ~0x00000200);
18669 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
18670 onChanged();
18671 return this;
18672 }
18673
18674 private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
18685 @java.lang.Override
18686 public boolean hasMaxDeterministicTime() {
18687 return ((bitField1_ & 0x00000400) != 0);
18688 }
18699 @java.lang.Override
18700 public double getMaxDeterministicTime() {
18701 return maxDeterministicTime_;
18702 }
18714 public Builder setMaxDeterministicTime(double value) {
18715
18716 maxDeterministicTime_ = value;
18717 bitField1_ |= 0x00000400;
18718 onChanged();
18719 return this;
18720 }
18732 bitField1_ = (bitField1_ & ~0x00000400);
18733 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
18734 onChanged();
18735 return this;
18736 }
18737
18738 private long maxNumberOfConflicts_ = 9223372036854775807L;
18753 @java.lang.Override
18754 public boolean hasMaxNumberOfConflicts() {
18755 return ((bitField1_ & 0x00000800) != 0);
18756 }
18771 @java.lang.Override
18773 return maxNumberOfConflicts_;
18774 }
18791
18792 maxNumberOfConflicts_ = value;
18793 bitField1_ |= 0x00000800;
18794 onChanged();
18795 return this;
18796 }
18812 bitField1_ = (bitField1_ & ~0x00000800);
18813 maxNumberOfConflicts_ = 9223372036854775807L;
18814 onChanged();
18815 return this;
18816 }
18817
18818 private long maxMemoryInMb_ = 10000L;
18832 @java.lang.Override
18833 public boolean hasMaxMemoryInMb() {
18834 return ((bitField1_ & 0x00001000) != 0);
18835 }
18849 @java.lang.Override
18850 public long getMaxMemoryInMb() {
18851 return maxMemoryInMb_;
18852 }
18867 public Builder setMaxMemoryInMb(long value) {
18868
18869 maxMemoryInMb_ = value;
18870 bitField1_ |= 0x00001000;
18871 onChanged();
18872 return this;
18873 }
18888 bitField1_ = (bitField1_ & ~0x00001000);
18889 maxMemoryInMb_ = 10000L;
18890 onChanged();
18891 return this;
18892 }
18893
18894 private double absoluteGapLimit_ = 0.0001D;
18920 @java.lang.Override
18921 public boolean hasAbsoluteGapLimit() {
18922 return ((bitField1_ & 0x00002000) != 0);
18923 }
18949 @java.lang.Override
18950 public double getAbsoluteGapLimit() {
18951 return absoluteGapLimit_;
18952 }
18979 public Builder setAbsoluteGapLimit(double value) {
18980
18981 absoluteGapLimit_ = value;
18982 bitField1_ |= 0x00002000;
18983 onChanged();
18984 return this;
18985 }
19012 bitField1_ = (bitField1_ & ~0x00002000);
19013 absoluteGapLimit_ = 0.0001D;
19014 onChanged();
19015 return this;
19016 }
19017
19018 private double relativeGapLimit_ ;
19023 @java.lang.Override
19024 public boolean hasRelativeGapLimit() {
19025 return ((bitField1_ & 0x00004000) != 0);
19026 }
19031 @java.lang.Override
19032 public double getRelativeGapLimit() {
19033 return relativeGapLimit_;
19034 }
19040 public Builder setRelativeGapLimit(double value) {
19041
19042 relativeGapLimit_ = value;
19043 bitField1_ |= 0x00004000;
19044 onChanged();
19045 return this;
19046 }
19052 bitField1_ = (bitField1_ & ~0x00004000);
19053 relativeGapLimit_ = 0D;
19054 onChanged();
19055 return this;
19056 }
19057
19058 private int randomSeed_ = 1;
19073 @java.lang.Override
19074 public boolean hasRandomSeed() {
19075 return ((bitField1_ & 0x00008000) != 0);
19076 }
19091 @java.lang.Override
19092 public int getRandomSeed() {
19093 return randomSeed_;
19094 }
19110 public Builder setRandomSeed(int value) {
19111
19112 randomSeed_ = value;
19113 bitField1_ |= 0x00008000;
19114 onChanged();
19115 return this;
19116 }
19132 bitField1_ = (bitField1_ & ~0x00008000);
19133 randomSeed_ = 1;
19134 onChanged();
19135 return this;
19136 }
19137
19138 private boolean permuteVariableRandomly_ ;
19150 @java.lang.Override
19152 return ((bitField1_ & 0x00010000) != 0);
19153 }
19165 @java.lang.Override
19167 return permuteVariableRandomly_;
19168 }
19181 public Builder setPermuteVariableRandomly(boolean value) {
19182
19183 permuteVariableRandomly_ = value;
19184 bitField1_ |= 0x00010000;
19185 onChanged();
19186 return this;
19187 }
19200 bitField1_ = (bitField1_ & ~0x00010000);
19201 permuteVariableRandomly_ = false;
19202 onChanged();
19203 return this;
19204 }
19205
19206 private boolean permutePresolveConstraintOrder_ ;
19211 @java.lang.Override
19213 return ((bitField1_ & 0x00020000) != 0);
19214 }
19219 @java.lang.Override
19221 return permutePresolveConstraintOrder_;
19222 }
19229
19230 permutePresolveConstraintOrder_ = value;
19231 bitField1_ |= 0x00020000;
19232 onChanged();
19233 return this;
19234 }
19240 bitField1_ = (bitField1_ & ~0x00020000);
19241 permutePresolveConstraintOrder_ = false;
19242 onChanged();
19243 return this;
19244 }
19245
19246 private boolean useAbslRandom_ ;
19251 @java.lang.Override
19252 public boolean hasUseAbslRandom() {
19253 return ((bitField1_ & 0x00040000) != 0);
19254 }
19259 @java.lang.Override
19260 public boolean getUseAbslRandom() {
19261 return useAbslRandom_;
19262 }
19268 public Builder setUseAbslRandom(boolean value) {
19269
19270 useAbslRandom_ = value;
19271 bitField1_ |= 0x00040000;
19272 onChanged();
19273 return this;
19274 }
19280 bitField1_ = (bitField1_ & ~0x00040000);
19281 useAbslRandom_ = false;
19282 onChanged();
19283 return this;
19284 }
19285
19286 private boolean logSearchProgress_ ;
19297 @java.lang.Override
19298 public boolean hasLogSearchProgress() {
19299 return ((bitField1_ & 0x00080000) != 0);
19300 }
19311 @java.lang.Override
19312 public boolean getLogSearchProgress() {
19313 return logSearchProgress_;
19314 }
19326 public Builder setLogSearchProgress(boolean value) {
19327
19328 logSearchProgress_ = value;
19329 bitField1_ |= 0x00080000;
19330 onChanged();
19331 return this;
19332 }
19344 bitField1_ = (bitField1_ & ~0x00080000);
19345 logSearchProgress_ = false;
19346 onChanged();
19347 return this;
19348 }
19349
19350 private double logFrequencyInSeconds_ = -1D;
19361 @java.lang.Override
19362 public boolean hasLogFrequencyInSeconds() {
19363 return ((bitField1_ & 0x00100000) != 0);
19364 }
19375 @java.lang.Override
19377 return logFrequencyInSeconds_;
19378 }
19390 public Builder setLogFrequencyInSeconds(double value) {
19391
19392 logFrequencyInSeconds_ = value;
19393 bitField1_ |= 0x00100000;
19394 onChanged();
19395 return this;
19396 }
19408 bitField1_ = (bitField1_ & ~0x00100000);
19409 logFrequencyInSeconds_ = -1D;
19410 onChanged();
19411 return this;
19412 }
19413
19414 private double modelReductionLogFrequencyInSeconds_ = 5D;
19419 @java.lang.Override
19421 return ((bitField1_ & 0x00200000) != 0);
19422 }
19427 @java.lang.Override
19429 return modelReductionLogFrequencyInSeconds_;
19430 }
19437
19438 modelReductionLogFrequencyInSeconds_ = value;
19439 bitField1_ |= 0x00200000;
19440 onChanged();
19441 return this;
19442 }
19448 bitField1_ = (bitField1_ & ~0x00200000);
19449 modelReductionLogFrequencyInSeconds_ = 5D;
19450 onChanged();
19451 return this;
19452 }
19453
19454 private boolean logSubsolverStatistics_ ;
19466 @java.lang.Override
19467 public boolean hasLogSubsolverStatistics() {
19468 return ((bitField1_ & 0x00400000) != 0);
19469 }
19481 @java.lang.Override
19482 public boolean getLogSubsolverStatistics() {
19483 return logSubsolverStatistics_;
19484 }
19497 public Builder setLogSubsolverStatistics(boolean value) {
19498
19499 logSubsolverStatistics_ = value;
19500 bitField1_ |= 0x00400000;
19501 onChanged();
19502 return this;
19503 }
19516 bitField1_ = (bitField1_ & ~0x00400000);
19517 logSubsolverStatistics_ = false;
19518 onChanged();
19519 return this;
19520 }
19521
19522 private java.lang.Object logPrefix_ = "";
19531 public boolean hasLogPrefix() {
19532 return ((bitField1_ & 0x00800000) != 0);
19533 }
19542 public java.lang.String getLogPrefix() {
19543 java.lang.Object ref = logPrefix_;
19544 if (!(ref instanceof java.lang.String)) {
19545 com.google.protobuf.ByteString bs =
19546 (com.google.protobuf.ByteString) ref;
19547 java.lang.String s = bs.toStringUtf8();
19548 if (bs.isValidUtf8()) {
19549 logPrefix_ = s;
19550 }
19551 return s;
19552 } else {
19553 return (java.lang.String) ref;
19554 }
19555 }
19564 public com.google.protobuf.ByteString
19566 java.lang.Object ref = logPrefix_;
19567 if (ref instanceof String) {
19568 com.google.protobuf.ByteString b =
19569 com.google.protobuf.ByteString.copyFromUtf8(
19570 (java.lang.String) ref);
19571 logPrefix_ = b;
19572 return b;
19573 } else {
19574 return (com.google.protobuf.ByteString) ref;
19575 }
19576 }
19587 java.lang.String value) {
19588 if (value == null) { throw new NullPointerException(); }
19589 logPrefix_ = value;
19590 bitField1_ |= 0x00800000;
19591 onChanged();
19592 return this;
19593 }
19603 logPrefix_ = getDefaultInstance().getLogPrefix();
19604 bitField1_ = (bitField1_ & ~0x00800000);
19605 onChanged();
19606 return this;
19607 }
19618 com.google.protobuf.ByteString value) {
19619 if (value == null) { throw new NullPointerException(); }
19620 logPrefix_ = value;
19621 bitField1_ |= 0x00800000;
19622 onChanged();
19623 return this;
19624 }
19625
19626 private boolean logToStdout_ = true;
19635 @java.lang.Override
19636 public boolean hasLogToStdout() {
19637 return ((bitField1_ & 0x01000000) != 0);
19638 }
19647 @java.lang.Override
19648 public boolean getLogToStdout() {
19649 return logToStdout_;
19650 }
19660 public Builder setLogToStdout(boolean value) {
19661
19662 logToStdout_ = value;
19663 bitField1_ |= 0x01000000;
19664 onChanged();
19665 return this;
19666 }
19676 bitField1_ = (bitField1_ & ~0x01000000);
19677 logToStdout_ = true;
19678 onChanged();
19679 return this;
19680 }
19681
19682 private boolean logToResponse_ ;
19691 @java.lang.Override
19692 public boolean hasLogToResponse() {
19693 return ((bitField1_ & 0x02000000) != 0);
19694 }
19703 @java.lang.Override
19704 public boolean getLogToResponse() {
19705 return logToResponse_;
19706 }
19716 public Builder setLogToResponse(boolean value) {
19717
19718 logToResponse_ = value;
19719 bitField1_ |= 0x02000000;
19720 onChanged();
19721 return this;
19722 }
19732 bitField1_ = (bitField1_ & ~0x02000000);
19733 logToResponse_ = false;
19734 onChanged();
19735 return this;
19736 }
19737
19738 private boolean usePbResolution_ ;
19750 @java.lang.Override
19751 public boolean hasUsePbResolution() {
19752 return ((bitField1_ & 0x04000000) != 0);
19753 }
19765 @java.lang.Override
19766 public boolean getUsePbResolution() {
19767 return usePbResolution_;
19768 }
19781 public Builder setUsePbResolution(boolean value) {
19782
19783 usePbResolution_ = value;
19784 bitField1_ |= 0x04000000;
19785 onChanged();
19786 return this;
19787 }
19800 bitField1_ = (bitField1_ & ~0x04000000);
19801 usePbResolution_ = false;
19802 onChanged();
19803 return this;
19804 }
19805
19806 private boolean minimizeReductionDuringPbResolution_ ;
19818 @java.lang.Override
19820 return ((bitField1_ & 0x08000000) != 0);
19821 }
19833 @java.lang.Override
19835 return minimizeReductionDuringPbResolution_;
19836 }
19850
19851 minimizeReductionDuringPbResolution_ = value;
19852 bitField1_ |= 0x08000000;
19853 onChanged();
19854 return this;
19855 }
19868 bitField1_ = (bitField1_ & ~0x08000000);
19869 minimizeReductionDuringPbResolution_ = false;
19870 onChanged();
19871 return this;
19872 }
19873
19874 private boolean countAssumptionLevelsInLbd_ = true;
19891 @java.lang.Override
19893 return ((bitField1_ & 0x10000000) != 0);
19894 }
19911 @java.lang.Override
19913 return countAssumptionLevelsInLbd_;
19914 }
19933
19934 countAssumptionLevelsInLbd_ = value;
19935 bitField1_ |= 0x10000000;
19936 onChanged();
19937 return this;
19938 }
19956 bitField1_ = (bitField1_ & ~0x10000000);
19957 countAssumptionLevelsInLbd_ = true;
19958 onChanged();
19959 return this;
19960 }
19961
19962 private int presolveBveThreshold_ = 500;
19973 @java.lang.Override
19974 public boolean hasPresolveBveThreshold() {
19975 return ((bitField1_ & 0x20000000) != 0);
19976 }
19987 @java.lang.Override
19989 return presolveBveThreshold_;
19990 }
20003
20004 presolveBveThreshold_ = value;
20005 bitField1_ |= 0x20000000;
20006 onChanged();
20007 return this;
20008 }
20020 bitField1_ = (bitField1_ & ~0x20000000);
20021 presolveBveThreshold_ = 500;
20022 onChanged();
20023 return this;
20024 }
20025
20026 private int presolveBveClauseWeight_ = 3;
20036 @java.lang.Override
20038 return ((bitField1_ & 0x40000000) != 0);
20039 }
20049 @java.lang.Override
20051 return presolveBveClauseWeight_;
20052 }
20064
20065 presolveBveClauseWeight_ = value;
20066 bitField1_ |= 0x40000000;
20067 onChanged();
20068 return this;
20069 }
20080 bitField1_ = (bitField1_ & ~0x40000000);
20081 presolveBveClauseWeight_ = 3;
20082 onChanged();
20083 return this;
20084 }
20085
20086 private double probingDeterministicTimeLimit_ = 1D;
20099 @java.lang.Override
20101 return ((bitField1_ & 0x80000000) != 0);
20102 }
20115 @java.lang.Override
20117 return probingDeterministicTimeLimit_;
20118 }
20133
20134 probingDeterministicTimeLimit_ = value;
20135 bitField1_ |= 0x80000000;
20136 onChanged();
20137 return this;
20138 }
20152 bitField1_ = (bitField1_ & ~0x80000000);
20153 probingDeterministicTimeLimit_ = 1D;
20154 onChanged();
20155 return this;
20156 }
20157
20158 private double presolveProbingDeterministicTimeLimit_ = 30D;
20163 @java.lang.Override
20165 return ((bitField2_ & 0x00000001) != 0);
20166 }
20171 @java.lang.Override
20173 return presolveProbingDeterministicTimeLimit_;
20174 }
20181
20182 presolveProbingDeterministicTimeLimit_ = value;
20183 bitField2_ |= 0x00000001;
20184 onChanged();
20185 return this;
20186 }
20192 bitField2_ = (bitField2_ & ~0x00000001);
20193 presolveProbingDeterministicTimeLimit_ = 30D;
20194 onChanged();
20195 return this;
20196 }
20197
20198 private boolean presolveBlockedClause_ = true;
20208 @java.lang.Override
20209 public boolean hasPresolveBlockedClause() {
20210 return ((bitField2_ & 0x00000002) != 0);
20211 }
20221 @java.lang.Override
20222 public boolean getPresolveBlockedClause() {
20223 return presolveBlockedClause_;
20224 }
20235 public Builder setPresolveBlockedClause(boolean value) {
20236
20237 presolveBlockedClause_ = value;
20238 bitField2_ |= 0x00000002;
20239 onChanged();
20240 return this;
20241 }
20252 bitField2_ = (bitField2_ & ~0x00000002);
20253 presolveBlockedClause_ = true;
20254 onChanged();
20255 return this;
20256 }
20257
20258 private boolean presolveUseBva_ = true;
20267 @java.lang.Override
20268 public boolean hasPresolveUseBva() {
20269 return ((bitField2_ & 0x00000004) != 0);
20270 }
20279 @java.lang.Override
20280 public boolean getPresolveUseBva() {
20281 return presolveUseBva_;
20282 }
20292 public Builder setPresolveUseBva(boolean value) {
20293
20294 presolveUseBva_ = value;
20295 bitField2_ |= 0x00000004;
20296 onChanged();
20297 return this;
20298 }
20308 bitField2_ = (bitField2_ & ~0x00000004);
20309 presolveUseBva_ = true;
20310 onChanged();
20311 return this;
20312 }
20313
20314 private int presolveBvaThreshold_ = 1;
20326 @java.lang.Override
20327 public boolean hasPresolveBvaThreshold() {
20328 return ((bitField2_ & 0x00000008) != 0);
20329 }
20341 @java.lang.Override
20343 return presolveBvaThreshold_;
20344 }
20358
20359 presolveBvaThreshold_ = value;
20360 bitField2_ |= 0x00000008;
20361 onChanged();
20362 return this;
20363 }
20376 bitField2_ = (bitField2_ & ~0x00000008);
20377 presolveBvaThreshold_ = 1;
20378 onChanged();
20379 return this;
20380 }
20381
20382 private int maxPresolveIterations_ = 3;
20393 @java.lang.Override
20394 public boolean hasMaxPresolveIterations() {
20395 return ((bitField2_ & 0x00000010) != 0);
20396 }
20407 @java.lang.Override
20409 return maxPresolveIterations_;
20410 }
20423
20424 maxPresolveIterations_ = value;
20425 bitField2_ |= 0x00000010;
20426 onChanged();
20427 return this;
20428 }
20440 bitField2_ = (bitField2_ & ~0x00000010);
20441 maxPresolveIterations_ = 3;
20442 onChanged();
20443 return this;
20444 }
20445
20446 private boolean cpModelPresolve_ = true;
20455 @java.lang.Override
20456 public boolean hasCpModelPresolve() {
20457 return ((bitField2_ & 0x00000020) != 0);
20458 }
20467 @java.lang.Override
20468 public boolean getCpModelPresolve() {
20469 return cpModelPresolve_;
20470 }
20480 public Builder setCpModelPresolve(boolean value) {
20481
20482 cpModelPresolve_ = value;
20483 bitField2_ |= 0x00000020;
20484 onChanged();
20485 return this;
20486 }
20496 bitField2_ = (bitField2_ & ~0x00000020);
20497 cpModelPresolve_ = true;
20498 onChanged();
20499 return this;
20500 }
20501
20502 private int cpModelProbingLevel_ = 2;
20511 @java.lang.Override
20512 public boolean hasCpModelProbingLevel() {
20513 return ((bitField2_ & 0x00000040) != 0);
20514 }
20523 @java.lang.Override
20525 return cpModelProbingLevel_;
20526 }
20537
20538 cpModelProbingLevel_ = value;
20539 bitField2_ |= 0x00000040;
20540 onChanged();
20541 return this;
20542 }
20552 bitField2_ = (bitField2_ & ~0x00000040);
20553 cpModelProbingLevel_ = 2;
20554 onChanged();
20555 return this;
20556 }
20557
20558 private boolean cpModelUseSatPresolve_ = true;
20567 @java.lang.Override
20568 public boolean hasCpModelUseSatPresolve() {
20569 return ((bitField2_ & 0x00000080) != 0);
20570 }
20579 @java.lang.Override
20580 public boolean getCpModelUseSatPresolve() {
20581 return cpModelUseSatPresolve_;
20582 }
20592 public Builder setCpModelUseSatPresolve(boolean value) {
20593
20594 cpModelUseSatPresolve_ = value;
20595 bitField2_ |= 0x00000080;
20596 onChanged();
20597 return this;
20598 }
20608 bitField2_ = (bitField2_ & ~0x00000080);
20609 cpModelUseSatPresolve_ = true;
20610 onChanged();
20611 return this;
20612 }
20613
20614 private boolean useSatInprocessing_ ;
20619 @java.lang.Override
20620 public boolean hasUseSatInprocessing() {
20621 return ((bitField2_ & 0x00000100) != 0);
20622 }
20627 @java.lang.Override
20628 public boolean getUseSatInprocessing() {
20629 return useSatInprocessing_;
20630 }
20636 public Builder setUseSatInprocessing(boolean value) {
20637
20638 useSatInprocessing_ = value;
20639 bitField2_ |= 0x00000100;
20640 onChanged();
20641 return this;
20642 }
20648 bitField2_ = (bitField2_ & ~0x00000100);
20649 useSatInprocessing_ = false;
20650 onChanged();
20651 return this;
20652 }
20653
20654 private boolean detectTableWithCost_ ;
20668 @java.lang.Override
20669 public boolean hasDetectTableWithCost() {
20670 return ((bitField2_ & 0x00000200) != 0);
20671 }
20685 @java.lang.Override
20686 public boolean getDetectTableWithCost() {
20687 return detectTableWithCost_;
20688 }
20703 public Builder setDetectTableWithCost(boolean value) {
20704
20705 detectTableWithCost_ = value;
20706 bitField2_ |= 0x00000200;
20707 onChanged();
20708 return this;
20709 }
20724 bitField2_ = (bitField2_ & ~0x00000200);
20725 detectTableWithCost_ = false;
20726 onChanged();
20727 return this;
20728 }
20729
20730 private int tableCompressionLevel_ = 2;
20742 @java.lang.Override
20743 public boolean hasTableCompressionLevel() {
20744 return ((bitField2_ & 0x00000400) != 0);
20745 }
20757 @java.lang.Override
20759 return tableCompressionLevel_;
20760 }
20774
20775 tableCompressionLevel_ = value;
20776 bitField2_ |= 0x00000400;
20777 onChanged();
20778 return this;
20779 }
20792 bitField2_ = (bitField2_ & ~0x00000400);
20793 tableCompressionLevel_ = 2;
20794 onChanged();
20795 return this;
20796 }
20797
20798 private boolean expandAlldiffConstraints_ ;
20808 @java.lang.Override
20810 return ((bitField2_ & 0x00000800) != 0);
20811 }
20821 @java.lang.Override
20823 return expandAlldiffConstraints_;
20824 }
20835 public Builder setExpandAlldiffConstraints(boolean value) {
20836
20837 expandAlldiffConstraints_ = value;
20838 bitField2_ |= 0x00000800;
20839 onChanged();
20840 return this;
20841 }
20852 bitField2_ = (bitField2_ & ~0x00000800);
20853 expandAlldiffConstraints_ = false;
20854 onChanged();
20855 return this;
20856 }
20857
20858 private boolean expandReservoirConstraints_ = true;
20868 @java.lang.Override
20870 return ((bitField2_ & 0x00001000) != 0);
20871 }
20881 @java.lang.Override
20883 return expandReservoirConstraints_;
20884 }
20896
20897 expandReservoirConstraints_ = value;
20898 bitField2_ |= 0x00001000;
20899 onChanged();
20900 return this;
20901 }
20912 bitField2_ = (bitField2_ & ~0x00001000);
20913 expandReservoirConstraints_ = true;
20914 onChanged();
20915 return this;
20916 }
20917
20918 private boolean disableConstraintExpansion_ ;
20928 @java.lang.Override
20930 return ((bitField2_ & 0x00002000) != 0);
20931 }
20941 @java.lang.Override
20943 return disableConstraintExpansion_;
20944 }
20956
20957 disableConstraintExpansion_ = value;
20958 bitField2_ |= 0x00002000;
20959 onChanged();
20960 return this;
20961 }
20972 bitField2_ = (bitField2_ & ~0x00002000);
20973 disableConstraintExpansion_ = false;
20974 onChanged();
20975 return this;
20976 }
20977
20978 private boolean encodeComplexLinearConstraintWithInteger_ ;
20988 @java.lang.Override
20990 return ((bitField2_ & 0x00004000) != 0);
20991 }
21001 @java.lang.Override
21003 return encodeComplexLinearConstraintWithInteger_;
21004 }
21016
21017 encodeComplexLinearConstraintWithInteger_ = value;
21018 bitField2_ |= 0x00004000;
21019 onChanged();
21020 return this;
21021 }
21032 bitField2_ = (bitField2_ & ~0x00004000);
21033 encodeComplexLinearConstraintWithInteger_ = false;
21034 onChanged();
21035 return this;
21036 }
21037
21038 private double mergeNoOverlapWorkLimit_ = 1000000000000D;
21051 @java.lang.Override
21053 return ((bitField2_ & 0x00008000) != 0);
21054 }
21067 @java.lang.Override
21069 return mergeNoOverlapWorkLimit_;
21070 }
21085
21086 mergeNoOverlapWorkLimit_ = value;
21087 bitField2_ |= 0x00008000;
21088 onChanged();
21089 return this;
21090 }
21104 bitField2_ = (bitField2_ & ~0x00008000);
21105 mergeNoOverlapWorkLimit_ = 1000000000000D;
21106 onChanged();
21107 return this;
21108 }
21109
21110 private double mergeAtMostOneWorkLimit_ = 100000000D;
21115 @java.lang.Override
21117 return ((bitField2_ & 0x00010000) != 0);
21118 }
21123 @java.lang.Override
21125 return mergeAtMostOneWorkLimit_;
21126 }
21133
21134 mergeAtMostOneWorkLimit_ = value;
21135 bitField2_ |= 0x00010000;
21136 onChanged();
21137 return this;
21138 }
21144 bitField2_ = (bitField2_ & ~0x00010000);
21145 mergeAtMostOneWorkLimit_ = 100000000D;
21146 onChanged();
21147 return this;
21148 }
21149
21150 private int presolveSubstitutionLevel_ = 1;
21162 @java.lang.Override
21164 return ((bitField2_ & 0x00020000) != 0);
21165 }
21177 @java.lang.Override
21179 return presolveSubstitutionLevel_;
21180 }
21194
21195 presolveSubstitutionLevel_ = value;
21196 bitField2_ |= 0x00020000;
21197 onChanged();
21198 return this;
21199 }
21212 bitField2_ = (bitField2_ & ~0x00020000);
21213 presolveSubstitutionLevel_ = 1;
21214 onChanged();
21215 return this;
21216 }
21217
21218 private boolean presolveExtractIntegerEnforcement_ ;
21232 @java.lang.Override
21234 return ((bitField2_ & 0x00040000) != 0);
21235 }
21249 @java.lang.Override
21251 return presolveExtractIntegerEnforcement_;
21252 }
21268
21269 presolveExtractIntegerEnforcement_ = value;
21270 bitField2_ |= 0x00040000;
21271 onChanged();
21272 return this;
21273 }
21288 bitField2_ = (bitField2_ & ~0x00040000);
21289 presolveExtractIntegerEnforcement_ = false;
21290 onChanged();
21291 return this;
21292 }
21293
21294 private long presolveInclusionWorkLimit_ = 100000000L;
21309 @java.lang.Override
21311 return ((bitField2_ & 0x00080000) != 0);
21312 }
21327 @java.lang.Override
21329 return presolveInclusionWorkLimit_;
21330 }
21347
21348 presolveInclusionWorkLimit_ = value;
21349 bitField2_ |= 0x00080000;
21350 onChanged();
21351 return this;
21352 }
21368 bitField2_ = (bitField2_ & ~0x00080000);
21369 presolveInclusionWorkLimit_ = 100000000L;
21370 onChanged();
21371 return this;
21372 }
21373
21374 private boolean ignoreNames_ = true;
21383 @java.lang.Override
21384 public boolean hasIgnoreNames() {
21385 return ((bitField2_ & 0x00100000) != 0);
21386 }
21395 @java.lang.Override
21396 public boolean getIgnoreNames() {
21397 return ignoreNames_;
21398 }
21408 public Builder setIgnoreNames(boolean value) {
21409
21410 ignoreNames_ = value;
21411 bitField2_ |= 0x00100000;
21412 onChanged();
21413 return this;
21414 }
21424 bitField2_ = (bitField2_ & ~0x00100000);
21425 ignoreNames_ = true;
21426 onChanged();
21427 return this;
21428 }
21429
21430 private boolean inferAllDiffs_ = true;
21443 @java.lang.Override
21444 public boolean hasInferAllDiffs() {
21445 return ((bitField2_ & 0x00200000) != 0);
21446 }
21459 @java.lang.Override
21460 public boolean getInferAllDiffs() {
21461 return inferAllDiffs_;
21462 }
21476 public Builder setInferAllDiffs(boolean value) {
21477
21478 inferAllDiffs_ = value;
21479 bitField2_ |= 0x00200000;
21480 onChanged();
21481 return this;
21482 }
21496 bitField2_ = (bitField2_ & ~0x00200000);
21497 inferAllDiffs_ = true;
21498 onChanged();
21499 return this;
21500 }
21501
21502 private boolean findBigLinearOverlap_ = true;
21514 @java.lang.Override
21515 public boolean hasFindBigLinearOverlap() {
21516 return ((bitField2_ & 0x00400000) != 0);
21517 }
21529 @java.lang.Override
21530 public boolean getFindBigLinearOverlap() {
21531 return findBigLinearOverlap_;
21532 }
21545 public Builder setFindBigLinearOverlap(boolean value) {
21546
21547 findBigLinearOverlap_ = value;
21548 bitField2_ |= 0x00400000;
21549 onChanged();
21550 return this;
21551 }
21564 bitField2_ = (bitField2_ & ~0x00400000);
21565 findBigLinearOverlap_ = true;
21566 onChanged();
21567 return this;
21568 }
21569
21570 private int numWorkers_ ;
21592 @java.lang.Override
21593 public boolean hasNumWorkers() {
21594 return ((bitField2_ & 0x00800000) != 0);
21595 }
21617 @java.lang.Override
21618 public int getNumWorkers() {
21619 return numWorkers_;
21620 }
21643 public Builder setNumWorkers(int value) {
21644
21645 numWorkers_ = value;
21646 bitField2_ |= 0x00800000;
21647 onChanged();
21648 return this;
21649 }
21672 bitField2_ = (bitField2_ & ~0x00800000);
21673 numWorkers_ = 0;
21674 onChanged();
21675 return this;
21676 }
21677
21678 private int numSearchWorkers_ ;
21683 @java.lang.Override
21684 public boolean hasNumSearchWorkers() {
21685 return ((bitField2_ & 0x01000000) != 0);
21686 }
21691 @java.lang.Override
21692 public int getNumSearchWorkers() {
21693 return numSearchWorkers_;
21694 }
21700 public Builder setNumSearchWorkers(int value) {
21701
21702 numSearchWorkers_ = value;
21703 bitField2_ |= 0x01000000;
21704 onChanged();
21705 return this;
21706 }
21712 bitField2_ = (bitField2_ & ~0x01000000);
21713 numSearchWorkers_ = 0;
21714 onChanged();
21715 return this;
21716 }
21717
21718 private int minNumLnsWorkers_ = 2;
21731 @java.lang.Override
21732 public boolean hasMinNumLnsWorkers() {
21733 return ((bitField2_ & 0x02000000) != 0);
21734 }
21747 @java.lang.Override
21748 public int getMinNumLnsWorkers() {
21749 return minNumLnsWorkers_;
21750 }
21764 public Builder setMinNumLnsWorkers(int value) {
21765
21766 minNumLnsWorkers_ = value;
21767 bitField2_ |= 0x02000000;
21768 onChanged();
21769 return this;
21770 }
21784 bitField2_ = (bitField2_ & ~0x02000000);
21785 minNumLnsWorkers_ = 2;
21786 onChanged();
21787 return this;
21788 }
21789
21790 private com.google.protobuf.LazyStringArrayList subsolvers_ =
21791 com.google.protobuf.LazyStringArrayList.emptyList();
21792 private void ensureSubsolversIsMutable() {
21793 if (!subsolvers_.isModifiable()) {
21794 subsolvers_ = new com.google.protobuf.LazyStringArrayList(subsolvers_);
21795 }
21796 bitField2_ |= 0x04000000;
21797 }
21833 public com.google.protobuf.ProtocolStringList
21835 subsolvers_.makeImmutable();
21836 return subsolvers_;
21837 }
21873 public int getSubsolversCount() {
21874 return subsolvers_.size();
21875 }
21912 public java.lang.String getSubsolvers(int index) {
21913 return subsolvers_.get(index);
21914 }
21951 public com.google.protobuf.ByteString
21953 return subsolvers_.getByteString(index);
21954 }
21993 int index, java.lang.String value) {
21994 if (value == null) { throw new NullPointerException(); }
21995 ensureSubsolversIsMutable();
21996 subsolvers_.set(index, value);
21997 bitField2_ |= 0x04000000;
21998 onChanged();
21999 return this;
22000 }
22038 java.lang.String value) {
22039 if (value == null) { throw new NullPointerException(); }
22040 ensureSubsolversIsMutable();
22041 subsolvers_.add(value);
22042 bitField2_ |= 0x04000000;
22043 onChanged();
22044 return this;
22045 }
22083 java.lang.Iterable<java.lang.String> values) {
22084 ensureSubsolversIsMutable();
22085 com.google.protobuf.AbstractMessageLite.Builder.addAll(
22086 values, subsolvers_);
22087 bitField2_ |= 0x04000000;
22088 onChanged();
22089 return this;
22090 }
22127 subsolvers_ =
22128 com.google.protobuf.LazyStringArrayList.emptyList();
22129 bitField2_ = (bitField2_ & ~0x04000000);;
22130 onChanged();
22131 return this;
22132 }
22170 com.google.protobuf.ByteString value) {
22171 if (value == null) { throw new NullPointerException(); }
22172 ensureSubsolversIsMutable();
22173 subsolvers_.add(value);
22174 bitField2_ |= 0x04000000;
22175 onChanged();
22176 return this;
22177 }
22178
22179 private com.google.protobuf.LazyStringArrayList extraSubsolvers_ =
22180 com.google.protobuf.LazyStringArrayList.emptyList();
22181 private void ensureExtraSubsolversIsMutable() {
22182 if (!extraSubsolvers_.isModifiable()) {
22183 extraSubsolvers_ = new com.google.protobuf.LazyStringArrayList(extraSubsolvers_);
22184 }
22185 bitField2_ |= 0x08000000;
22186 }
22196 public com.google.protobuf.ProtocolStringList
22198 extraSubsolvers_.makeImmutable();
22199 return extraSubsolvers_;
22200 }
22211 return extraSubsolvers_.size();
22212 }
22223 public java.lang.String getExtraSubsolvers(int index) {
22224 return extraSubsolvers_.get(index);
22225 }
22236 public com.google.protobuf.ByteString
22238 return extraSubsolvers_.getByteString(index);
22239 }
22252 int index, java.lang.String value) {
22253 if (value == null) { throw new NullPointerException(); }
22254 ensureExtraSubsolversIsMutable();
22255 extraSubsolvers_.set(index, value);
22256 bitField2_ |= 0x08000000;
22257 onChanged();
22258 return this;
22259 }
22271 java.lang.String value) {
22272 if (value == null) { throw new NullPointerException(); }
22273 ensureExtraSubsolversIsMutable();
22274 extraSubsolvers_.add(value);
22275 bitField2_ |= 0x08000000;
22276 onChanged();
22277 return this;
22278 }
22290 java.lang.Iterable<java.lang.String> values) {
22291 ensureExtraSubsolversIsMutable();
22292 com.google.protobuf.AbstractMessageLite.Builder.addAll(
22293 values, extraSubsolvers_);
22294 bitField2_ |= 0x08000000;
22295 onChanged();
22296 return this;
22297 }
22308 extraSubsolvers_ =
22309 com.google.protobuf.LazyStringArrayList.emptyList();
22310 bitField2_ = (bitField2_ & ~0x08000000);;
22311 onChanged();
22312 return this;
22313 }
22325 com.google.protobuf.ByteString value) {
22326 if (value == null) { throw new NullPointerException(); }
22327 ensureExtraSubsolversIsMutable();
22328 extraSubsolvers_.add(value);
22329 bitField2_ |= 0x08000000;
22330 onChanged();
22331 return this;
22332 }
22333
22334 private com.google.protobuf.LazyStringArrayList ignoreSubsolvers_ =
22335 com.google.protobuf.LazyStringArrayList.emptyList();
22336 private void ensureIgnoreSubsolversIsMutable() {
22337 if (!ignoreSubsolvers_.isModifiable()) {
22338 ignoreSubsolvers_ = new com.google.protobuf.LazyStringArrayList(ignoreSubsolvers_);
22339 }
22340 bitField2_ |= 0x10000000;
22341 }
22351 public com.google.protobuf.ProtocolStringList
22353 ignoreSubsolvers_.makeImmutable();
22354 return ignoreSubsolvers_;
22355 }
22366 return ignoreSubsolvers_.size();
22367 }
22378 public java.lang.String getIgnoreSubsolvers(int index) {
22379 return ignoreSubsolvers_.get(index);
22380 }
22391 public com.google.protobuf.ByteString
22393 return ignoreSubsolvers_.getByteString(index);
22394 }
22407 int index, java.lang.String value) {
22408 if (value == null) { throw new NullPointerException(); }
22409 ensureIgnoreSubsolversIsMutable();
22410 ignoreSubsolvers_.set(index, value);
22411 bitField2_ |= 0x10000000;
22412 onChanged();
22413 return this;
22414 }
22426 java.lang.String value) {
22427 if (value == null) { throw new NullPointerException(); }
22428 ensureIgnoreSubsolversIsMutable();
22429 ignoreSubsolvers_.add(value);
22430 bitField2_ |= 0x10000000;
22431 onChanged();
22432 return this;
22433 }
22445 java.lang.Iterable<java.lang.String> values) {
22446 ensureIgnoreSubsolversIsMutable();
22447 com.google.protobuf.AbstractMessageLite.Builder.addAll(
22448 values, ignoreSubsolvers_);
22449 bitField2_ |= 0x10000000;
22450 onChanged();
22451 return this;
22452 }
22463 ignoreSubsolvers_ =
22464 com.google.protobuf.LazyStringArrayList.emptyList();
22465 bitField2_ = (bitField2_ & ~0x10000000);;
22466 onChanged();
22467 return this;
22468 }
22480 com.google.protobuf.ByteString value) {
22481 if (value == null) { throw new NullPointerException(); }
22482 ensureIgnoreSubsolversIsMutable();
22483 ignoreSubsolvers_.add(value);
22484 bitField2_ |= 0x10000000;
22485 onChanged();
22486 return this;
22487 }
22488
22489 private java.util.List<com.google.ortools.sat.SatParameters> subsolverParams_ =
22490 java.util.Collections.emptyList();
22491 private void ensureSubsolverParamsIsMutable() {
22492 if (!((bitField2_ & 0x20000000) != 0)) {
22493 subsolverParams_ = new java.util.ArrayList<com.google.ortools.sat.SatParameters>(subsolverParams_);
22494 bitField2_ |= 0x20000000;
22495 }
22496 }
22497
22498 private com.google.protobuf.RepeatedFieldBuilderV3<
22499 com.google.ortools.sat.SatParameters, com.google.ortools.sat.SatParameters.Builder, com.google.ortools.sat.SatParametersOrBuilder> subsolverParamsBuilder_;
22500
22511 public java.util.List<com.google.ortools.sat.SatParameters> getSubsolverParamsList() {
22512 if (subsolverParamsBuilder_ == null) {
22513 return java.util.Collections.unmodifiableList(subsolverParams_);
22514 } else {
22515 return subsolverParamsBuilder_.getMessageList();
22516 }
22517 }
22529 if (subsolverParamsBuilder_ == null) {
22530 return subsolverParams_.size();
22531 } else {
22532 return subsolverParamsBuilder_.getCount();
22533 }
22534 }
22546 if (subsolverParamsBuilder_ == null) {
22547 return subsolverParams_.get(index);
22548 } else {
22549 return subsolverParamsBuilder_.getMessage(index);
22550 }
22551 }
22563 int index, com.google.ortools.sat.SatParameters value) {
22564 if (subsolverParamsBuilder_ == null) {
22565 if (value == null) {
22566 throw new NullPointerException();
22567 }
22568 ensureSubsolverParamsIsMutable();
22569 subsolverParams_.set(index, value);
22570 onChanged();
22571 } else {
22572 subsolverParamsBuilder_.setMessage(index, value);
22573 }
22574 return this;
22575 }
22587 int index, com.google.ortools.sat.SatParameters.Builder builderForValue) {
22588 if (subsolverParamsBuilder_ == null) {
22589 ensureSubsolverParamsIsMutable();
22590 subsolverParams_.set(index, builderForValue.build());
22591 onChanged();
22592 } else {
22593 subsolverParamsBuilder_.setMessage(index, builderForValue.build());
22594 }
22595 return this;
22596 }
22607 public Builder addSubsolverParams(com.google.ortools.sat.SatParameters value) {
22608 if (subsolverParamsBuilder_ == null) {
22609 if (value == null) {
22610 throw new NullPointerException();
22611 }
22612 ensureSubsolverParamsIsMutable();
22613 subsolverParams_.add(value);
22614 onChanged();
22615 } else {
22616 subsolverParamsBuilder_.addMessage(value);
22617 }
22618 return this;
22619 }
22631 int index, com.google.ortools.sat.SatParameters value) {
22632 if (subsolverParamsBuilder_ == null) {
22633 if (value == null) {
22634 throw new NullPointerException();
22635 }
22636 ensureSubsolverParamsIsMutable();
22637 subsolverParams_.add(index, value);
22638 onChanged();
22639 } else {
22640 subsolverParamsBuilder_.addMessage(index, value);
22641 }
22642 return this;
22643 }
22655 com.google.ortools.sat.SatParameters.Builder builderForValue) {
22656 if (subsolverParamsBuilder_ == null) {
22657 ensureSubsolverParamsIsMutable();
22658 subsolverParams_.add(builderForValue.build());
22659 onChanged();
22660 } else {
22661 subsolverParamsBuilder_.addMessage(builderForValue.build());
22662 }
22663 return this;
22664 }
22676 int index, com.google.ortools.sat.SatParameters.Builder builderForValue) {
22677 if (subsolverParamsBuilder_ == null) {
22678 ensureSubsolverParamsIsMutable();
22679 subsolverParams_.add(index, builderForValue.build());
22680 onChanged();
22681 } else {
22682 subsolverParamsBuilder_.addMessage(index, builderForValue.build());
22683 }
22684 return this;
22685 }
22697 java.lang.Iterable<? extends com.google.ortools.sat.SatParameters> values) {
22698 if (subsolverParamsBuilder_ == null) {
22699 ensureSubsolverParamsIsMutable();
22700 com.google.protobuf.AbstractMessageLite.Builder.addAll(
22701 values, subsolverParams_);
22702 onChanged();
22703 } else {
22704 subsolverParamsBuilder_.addAllMessages(values);
22705 }
22706 return this;
22707 }
22719 if (subsolverParamsBuilder_ == null) {
22720 subsolverParams_ = java.util.Collections.emptyList();
22721 bitField2_ = (bitField2_ & ~0x20000000);
22722 onChanged();
22723 } else {
22724 subsolverParamsBuilder_.clear();
22725 }
22726 return this;
22727 }
22738 public Builder removeSubsolverParams(int index) {
22739 if (subsolverParamsBuilder_ == null) {
22740 ensureSubsolverParamsIsMutable();
22741 subsolverParams_.remove(index);
22742 onChanged();
22743 } else {
22744 subsolverParamsBuilder_.remove(index);
22745 }
22746 return this;
22747 }
22759 int index) {
22760 return getSubsolverParamsFieldBuilder().getBuilder(index);
22761 }
22773 int index) {
22774 if (subsolverParamsBuilder_ == null) {
22775 return subsolverParams_.get(index); } else {
22776 return subsolverParamsBuilder_.getMessageOrBuilder(index);
22777 }
22778 }
22789 public java.util.List<? extends com.google.ortools.sat.SatParametersOrBuilder>
22791 if (subsolverParamsBuilder_ != null) {
22792 return subsolverParamsBuilder_.getMessageOrBuilderList();
22793 } else {
22794 return java.util.Collections.unmodifiableList(subsolverParams_);
22795 }
22796 }
22808 return getSubsolverParamsFieldBuilder().addBuilder(
22809 com.google.ortools.sat.SatParameters.getDefaultInstance());
22810 }
22822 int index) {
22823 return getSubsolverParamsFieldBuilder().addBuilder(
22824 index, com.google.ortools.sat.SatParameters.getDefaultInstance());
22825 }
22836 public java.util.List<com.google.ortools.sat.SatParameters.Builder>
22838 return getSubsolverParamsFieldBuilder().getBuilderList();
22839 }
22840 private com.google.protobuf.RepeatedFieldBuilderV3<
22841 com.google.ortools.sat.SatParameters, com.google.ortools.sat.SatParameters.Builder, com.google.ortools.sat.SatParametersOrBuilder>
22842 getSubsolverParamsFieldBuilder() {
22843 if (subsolverParamsBuilder_ == null) {
22844 subsolverParamsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
22845 com.google.ortools.sat.SatParameters, com.google.ortools.sat.SatParameters.Builder, com.google.ortools.sat.SatParametersOrBuilder>(
22846 subsolverParams_,
22847 ((bitField2_ & 0x20000000) != 0),
22848 getParentForChildren(),
22849 isClean());
22850 subsolverParams_ = null;
22851 }
22852 return subsolverParamsBuilder_;
22853 }
22854
22855 private boolean interleaveSearch_ ;
22869 @java.lang.Override
22870 public boolean hasInterleaveSearch() {
22871 return ((bitField2_ & 0x40000000) != 0);
22872 }
22886 @java.lang.Override
22887 public boolean getInterleaveSearch() {
22888 return interleaveSearch_;
22889 }
22904 public Builder setInterleaveSearch(boolean value) {
22905
22906 interleaveSearch_ = value;
22907 bitField2_ |= 0x40000000;
22908 onChanged();
22909 return this;
22910 }
22925 bitField2_ = (bitField2_ & ~0x40000000);
22926 interleaveSearch_ = false;
22927 onChanged();
22928 return this;
22929 }
22930
22931 private int interleaveBatchSize_ ;
22936 @java.lang.Override
22937 public boolean hasInterleaveBatchSize() {
22938 return ((bitField2_ & 0x80000000) != 0);
22939 }
22944 @java.lang.Override
22946 return interleaveBatchSize_;
22947 }
22954
22955 interleaveBatchSize_ = value;
22956 bitField2_ |= 0x80000000;
22957 onChanged();
22958 return this;
22959 }
22965 bitField2_ = (bitField2_ & ~0x80000000);
22966 interleaveBatchSize_ = 0;
22967 onChanged();
22968 return this;
22969 }
22970
22971 private boolean shareObjectiveBounds_ = true;
22980 @java.lang.Override
22981 public boolean hasShareObjectiveBounds() {
22982 return ((bitField3_ & 0x00000001) != 0);
22983 }
22992 @java.lang.Override
22993 public boolean getShareObjectiveBounds() {
22994 return shareObjectiveBounds_;
22995 }
23005 public Builder setShareObjectiveBounds(boolean value) {
23006
23007 shareObjectiveBounds_ = value;
23008 bitField3_ |= 0x00000001;
23009 onChanged();
23010 return this;
23011 }
23021 bitField3_ = (bitField3_ & ~0x00000001);
23022 shareObjectiveBounds_ = true;
23023 onChanged();
23024 return this;
23025 }
23026
23027 private boolean shareLevelZeroBounds_ = true;
23036 @java.lang.Override
23037 public boolean hasShareLevelZeroBounds() {
23038 return ((bitField3_ & 0x00000002) != 0);
23039 }
23048 @java.lang.Override
23049 public boolean getShareLevelZeroBounds() {
23050 return shareLevelZeroBounds_;
23051 }
23061 public Builder setShareLevelZeroBounds(boolean value) {
23062
23063 shareLevelZeroBounds_ = value;
23064 bitField3_ |= 0x00000002;
23065 onChanged();
23066 return this;
23067 }
23077 bitField3_ = (bitField3_ & ~0x00000002);
23078 shareLevelZeroBounds_ = true;
23079 onChanged();
23080 return this;
23081 }
23082
23083 private boolean shareBinaryClauses_ = true;
23092 @java.lang.Override
23093 public boolean hasShareBinaryClauses() {
23094 return ((bitField3_ & 0x00000004) != 0);
23095 }
23104 @java.lang.Override
23105 public boolean getShareBinaryClauses() {
23106 return shareBinaryClauses_;
23107 }
23117 public Builder setShareBinaryClauses(boolean value) {
23118
23119 shareBinaryClauses_ = value;
23120 bitField3_ |= 0x00000004;
23121 onChanged();
23122 return this;
23123 }
23133 bitField3_ = (bitField3_ & ~0x00000004);
23134 shareBinaryClauses_ = true;
23135 onChanged();
23136 return this;
23137 }
23138
23139 private boolean debugPostsolveWithFullSolver_ ;
23150 @java.lang.Override
23152 return ((bitField3_ & 0x00000008) != 0);
23153 }
23164 @java.lang.Override
23166 return debugPostsolveWithFullSolver_;
23167 }
23180
23181 debugPostsolveWithFullSolver_ = value;
23182 bitField3_ |= 0x00000008;
23183 onChanged();
23184 return this;
23185 }
23197 bitField3_ = (bitField3_ & ~0x00000008);
23198 debugPostsolveWithFullSolver_ = false;
23199 onChanged();
23200 return this;
23201 }
23202
23203 private int debugMaxNumPresolveOperations_ ;
23213 @java.lang.Override
23215 return ((bitField3_ & 0x00000010) != 0);
23216 }
23226 @java.lang.Override
23228 return debugMaxNumPresolveOperations_;
23229 }
23241
23242 debugMaxNumPresolveOperations_ = value;
23243 bitField3_ |= 0x00000010;
23244 onChanged();
23245 return this;
23246 }
23257 bitField3_ = (bitField3_ & ~0x00000010);
23258 debugMaxNumPresolveOperations_ = 0;
23259 onChanged();
23260 return this;
23261 }
23262
23263 private boolean debugCrashOnBadHint_ ;
23272 @java.lang.Override
23273 public boolean hasDebugCrashOnBadHint() {
23274 return ((bitField3_ & 0x00000020) != 0);
23275 }
23284 @java.lang.Override
23285 public boolean getDebugCrashOnBadHint() {
23286 return debugCrashOnBadHint_;
23287 }
23297 public Builder setDebugCrashOnBadHint(boolean value) {
23298
23299 debugCrashOnBadHint_ = value;
23300 bitField3_ |= 0x00000020;
23301 onChanged();
23302 return this;
23303 }
23313 bitField3_ = (bitField3_ & ~0x00000020);
23314 debugCrashOnBadHint_ = false;
23315 onChanged();
23316 return this;
23317 }
23318
23319 private boolean useOptimizationHints_ = true;
23331 @java.lang.Override
23332 public boolean hasUseOptimizationHints() {
23333 return ((bitField3_ & 0x00000040) != 0);
23334 }
23346 @java.lang.Override
23347 public boolean getUseOptimizationHints() {
23348 return useOptimizationHints_;
23349 }
23362 public Builder setUseOptimizationHints(boolean value) {
23363
23364 useOptimizationHints_ = value;
23365 bitField3_ |= 0x00000040;
23366 onChanged();
23367 return this;
23368 }
23381 bitField3_ = (bitField3_ & ~0x00000040);
23382 useOptimizationHints_ = true;
23383 onChanged();
23384 return this;
23385 }
23386
23387 private boolean minimizeCore_ = true;
23396 @java.lang.Override
23397 public boolean hasMinimizeCore() {
23398 return ((bitField3_ & 0x00000080) != 0);
23399 }
23408 @java.lang.Override
23409 public boolean getMinimizeCore() {
23410 return minimizeCore_;
23411 }
23421 public Builder setMinimizeCore(boolean value) {
23422
23423 minimizeCore_ = value;
23424 bitField3_ |= 0x00000080;
23425 onChanged();
23426 return this;
23427 }
23437 bitField3_ = (bitField3_ & ~0x00000080);
23438 minimizeCore_ = true;
23439 onChanged();
23440 return this;
23441 }
23442
23443 private boolean findMultipleCores_ = true;
23453 @java.lang.Override
23454 public boolean hasFindMultipleCores() {
23455 return ((bitField3_ & 0x00000100) != 0);
23456 }
23466 @java.lang.Override
23467 public boolean getFindMultipleCores() {
23468 return findMultipleCores_;
23469 }
23480 public Builder setFindMultipleCores(boolean value) {
23481
23482 findMultipleCores_ = value;
23483 bitField3_ |= 0x00000100;
23484 onChanged();
23485 return this;
23486 }
23497 bitField3_ = (bitField3_ & ~0x00000100);
23498 findMultipleCores_ = true;
23499 onChanged();
23500 return this;
23501 }
23502
23503 private boolean coverOptimization_ = true;
23514 @java.lang.Override
23515 public boolean hasCoverOptimization() {
23516 return ((bitField3_ & 0x00000200) != 0);
23517 }
23528 @java.lang.Override
23529 public boolean getCoverOptimization() {
23530 return coverOptimization_;
23531 }
23543 public Builder setCoverOptimization(boolean value) {
23544
23545 coverOptimization_ = value;
23546 bitField3_ |= 0x00000200;
23547 onChanged();
23548 return this;
23549 }
23561 bitField3_ = (bitField3_ & ~0x00000200);
23562 coverOptimization_ = true;
23563 onChanged();
23564 return this;
23565 }
23566
23567 private int maxSatAssumptionOrder_ = 0;
23572 @java.lang.Override public boolean hasMaxSatAssumptionOrder() {
23573 return ((bitField3_ & 0x00000400) != 0);
23574 }
23579 @java.lang.Override
23581 com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder result = com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.forNumber(maxSatAssumptionOrder_);
23582 return result == null ? com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.DEFAULT_ASSUMPTION_ORDER : result;
23583 }
23589 public Builder setMaxSatAssumptionOrder(com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value) {
23590 if (value == null) {
23591 throw new NullPointerException();
23592 }
23593 bitField3_ |= 0x00000400;
23594 maxSatAssumptionOrder_ = value.getNumber();
23595 onChanged();
23596 return this;
23597 }
23603 bitField3_ = (bitField3_ & ~0x00000400);
23604 maxSatAssumptionOrder_ = 0;
23605 onChanged();
23606 return this;
23607 }
23608
23609 private boolean maxSatReverseAssumptionOrder_ ;
23619 @java.lang.Override
23621 return ((bitField3_ & 0x00000800) != 0);
23622 }
23632 @java.lang.Override
23634 return maxSatReverseAssumptionOrder_;
23635 }
23647
23648 maxSatReverseAssumptionOrder_ = value;
23649 bitField3_ |= 0x00000800;
23650 onChanged();
23651 return this;
23652 }
23663 bitField3_ = (bitField3_ & ~0x00000800);
23664 maxSatReverseAssumptionOrder_ = false;
23665 onChanged();
23666 return this;
23667 }
23668
23669 private int maxSatStratification_ = 1;
23674 @java.lang.Override public boolean hasMaxSatStratification() {
23675 return ((bitField3_ & 0x00001000) != 0);
23676 }
23681 @java.lang.Override
23683 com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm result = com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.forNumber(maxSatStratification_);
23684 return result == null ? com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.STRATIFICATION_DESCENT : result;
23685 }
23691 public Builder setMaxSatStratification(com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value) {
23692 if (value == null) {
23693 throw new NullPointerException();
23694 }
23695 bitField3_ |= 0x00001000;
23696 maxSatStratification_ = value.getNumber();
23697 onChanged();
23698 return this;
23699 }
23705 bitField3_ = (bitField3_ & ~0x00001000);
23706 maxSatStratification_ = 1;
23707 onChanged();
23708 return this;
23709 }
23710
23711 private double propagationLoopDetectionFactor_ = 10D;
23728 @java.lang.Override
23730 return ((bitField3_ & 0x00002000) != 0);
23731 }
23748 @java.lang.Override
23750 return propagationLoopDetectionFactor_;
23751 }
23770
23771 propagationLoopDetectionFactor_ = value;
23772 bitField3_ |= 0x00002000;
23773 onChanged();
23774 return this;
23775 }
23793 bitField3_ = (bitField3_ & ~0x00002000);
23794 propagationLoopDetectionFactor_ = 10D;
23795 onChanged();
23796 return this;
23797 }
23798
23799 private boolean usePrecedencesInDisjunctiveConstraint_ = true;
23816 @java.lang.Override
23818 return ((bitField3_ & 0x00004000) != 0);
23819 }
23836 @java.lang.Override
23838 return usePrecedencesInDisjunctiveConstraint_;
23839 }
23858
23859 usePrecedencesInDisjunctiveConstraint_ = value;
23860 bitField3_ |= 0x00004000;
23861 onChanged();
23862 return this;
23863 }
23881 bitField3_ = (bitField3_ & ~0x00004000);
23882 usePrecedencesInDisjunctiveConstraint_ = true;
23883 onChanged();
23884 return this;
23885 }
23886
23887 private int maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = 60;
23900 @java.lang.Override
23902 return ((bitField3_ & 0x00008000) != 0);
23903 }
23916 @java.lang.Override
23918 return maxSizeToCreatePrecedenceLiteralsInDisjunctive_;
23919 }
23934
23935 maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = value;
23936 bitField3_ |= 0x00008000;
23937 onChanged();
23938 return this;
23939 }
23953 bitField3_ = (bitField3_ & ~0x00008000);
23954 maxSizeToCreatePrecedenceLiteralsInDisjunctive_ = 60;
23955 onChanged();
23956 return this;
23957 }
23958
23959 private boolean useStrongPropagationInDisjunctive_ ;
23968 @java.lang.Override
23970 return ((bitField3_ & 0x00010000) != 0);
23971 }
23980 @java.lang.Override
23982 return useStrongPropagationInDisjunctive_;
23983 }
23994
23995 useStrongPropagationInDisjunctive_ = value;
23996 bitField3_ |= 0x00010000;
23997 onChanged();
23998 return this;
23999 }
24009 bitField3_ = (bitField3_ & ~0x00010000);
24010 useStrongPropagationInDisjunctive_ = false;
24011 onChanged();
24012 return this;
24013 }
24014
24015 private boolean useOverloadCheckerInCumulative_ ;
24030 @java.lang.Override
24032 return ((bitField3_ & 0x00020000) != 0);
24033 }
24048 @java.lang.Override
24050 return useOverloadCheckerInCumulative_;
24051 }
24068
24069 useOverloadCheckerInCumulative_ = value;
24070 bitField3_ |= 0x00020000;
24071 onChanged();
24072 return this;
24073 }
24089 bitField3_ = (bitField3_ & ~0x00020000);
24090 useOverloadCheckerInCumulative_ = false;
24091 onChanged();
24092 return this;
24093 }
24094
24095 private boolean useTimetableEdgeFindingInCumulative_ ;
24110 @java.lang.Override
24112 return ((bitField3_ & 0x00040000) != 0);
24113 }
24128 @java.lang.Override
24130 return useTimetableEdgeFindingInCumulative_;
24131 }
24148
24149 useTimetableEdgeFindingInCumulative_ = value;
24150 bitField3_ |= 0x00040000;
24151 onChanged();
24152 return this;
24153 }
24169 bitField3_ = (bitField3_ & ~0x00040000);
24170 useTimetableEdgeFindingInCumulative_ = false;
24171 onChanged();
24172 return this;
24173 }
24174
24175 private boolean useHardPrecedencesInCumulative_ ;
24189 @java.lang.Override
24191 return ((bitField3_ & 0x00080000) != 0);
24192 }
24206 @java.lang.Override
24208 return useHardPrecedencesInCumulative_;
24209 }
24225
24226 useHardPrecedencesInCumulative_ = value;
24227 bitField3_ |= 0x00080000;
24228 onChanged();
24229 return this;
24230 }
24245 bitField3_ = (bitField3_ & ~0x00080000);
24246 useHardPrecedencesInCumulative_ = false;
24247 onChanged();
24248 return this;
24249 }
24250
24251 private boolean exploitAllPrecedences_ ;
24256 @java.lang.Override
24257 public boolean hasExploitAllPrecedences() {
24258 return ((bitField3_ & 0x00100000) != 0);
24259 }
24264 @java.lang.Override
24265 public boolean getExploitAllPrecedences() {
24266 return exploitAllPrecedences_;
24267 }
24273 public Builder setExploitAllPrecedences(boolean value) {
24274
24275 exploitAllPrecedences_ = value;
24276 bitField3_ |= 0x00100000;
24277 onChanged();
24278 return this;
24279 }
24285 bitField3_ = (bitField3_ & ~0x00100000);
24286 exploitAllPrecedences_ = false;
24287 onChanged();
24288 return this;
24289 }
24290
24291 private boolean useDisjunctiveConstraintInCumulative_ = true;
24309 @java.lang.Override
24311 return ((bitField3_ & 0x00200000) != 0);
24312 }
24330 @java.lang.Override
24332 return useDisjunctiveConstraintInCumulative_;
24333 }
24353
24354 useDisjunctiveConstraintInCumulative_ = value;
24355 bitField3_ |= 0x00200000;
24356 onChanged();
24357 return this;
24358 }
24377 bitField3_ = (bitField3_ & ~0x00200000);
24378 useDisjunctiveConstraintInCumulative_ = true;
24379 onChanged();
24380 return this;
24381 }
24382
24383 private boolean useTimetablingInNoOverlap2D_ ;
24396 @java.lang.Override
24398 return ((bitField3_ & 0x00400000) != 0);
24399 }
24412 @java.lang.Override
24414 return useTimetablingInNoOverlap2D_;
24415 }
24430
24431 useTimetablingInNoOverlap2D_ = value;
24432 bitField3_ |= 0x00400000;
24433 onChanged();
24434 return this;
24435 }
24449 bitField3_ = (bitField3_ & ~0x00400000);
24450 useTimetablingInNoOverlap2D_ = false;
24451 onChanged();
24452 return this;
24453 }
24454
24455 private boolean useEnergeticReasoningInNoOverlap2D_ ;
24466 @java.lang.Override
24468 return ((bitField3_ & 0x00800000) != 0);
24469 }
24480 @java.lang.Override
24482 return useEnergeticReasoningInNoOverlap2D_;
24483 }
24496
24497 useEnergeticReasoningInNoOverlap2D_ = value;
24498 bitField3_ |= 0x00800000;
24499 onChanged();
24500 return this;
24501 }
24513 bitField3_ = (bitField3_ & ~0x00800000);
24514 useEnergeticReasoningInNoOverlap2D_ = false;
24515 onChanged();
24516 return this;
24517 }
24518
24519 private boolean usePairwiseReasoningInNoOverlap2D_ ;
24529 @java.lang.Override
24531 return ((bitField3_ & 0x01000000) != 0);
24532 }
24542 @java.lang.Override
24544 return usePairwiseReasoningInNoOverlap2D_;
24545 }
24557
24558 usePairwiseReasoningInNoOverlap2D_ = value;
24559 bitField3_ |= 0x01000000;
24560 onChanged();
24561 return this;
24562 }
24573 bitField3_ = (bitField3_ & ~0x01000000);
24574 usePairwiseReasoningInNoOverlap2D_ = false;
24575 onChanged();
24576 return this;
24577 }
24578
24579 private boolean useDualSchedulingHeuristics_ = true;
24590 @java.lang.Override
24592 return ((bitField3_ & 0x02000000) != 0);
24593 }
24604 @java.lang.Override
24606 return useDualSchedulingHeuristics_;
24607 }
24620
24621 useDualSchedulingHeuristics_ = value;
24622 bitField3_ |= 0x02000000;
24623 onChanged();
24624 return this;
24625 }
24637 bitField3_ = (bitField3_ & ~0x02000000);
24638 useDualSchedulingHeuristics_ = true;
24639 onChanged();
24640 return this;
24641 }
24642
24643 private int linearizationLevel_ = 1;
24655 @java.lang.Override
24656 public boolean hasLinearizationLevel() {
24657 return ((bitField3_ & 0x04000000) != 0);
24658 }
24670 @java.lang.Override
24672 return linearizationLevel_;
24673 }
24686 public Builder setLinearizationLevel(int value) {
24687
24688 linearizationLevel_ = value;
24689 bitField3_ |= 0x04000000;
24690 onChanged();
24691 return this;
24692 }
24705 bitField3_ = (bitField3_ & ~0x04000000);
24706 linearizationLevel_ = 1;
24707 onChanged();
24708 return this;
24709 }
24710
24711 private int booleanEncodingLevel_ = 1;
24721 @java.lang.Override
24722 public boolean hasBooleanEncodingLevel() {
24723 return ((bitField3_ & 0x08000000) != 0);
24724 }
24734 @java.lang.Override
24736 return booleanEncodingLevel_;
24737 }
24749
24750 booleanEncodingLevel_ = value;
24751 bitField3_ |= 0x08000000;
24752 onChanged();
24753 return this;
24754 }
24765 bitField3_ = (bitField3_ & ~0x08000000);
24766 booleanEncodingLevel_ = 1;
24767 onChanged();
24768 return this;
24769 }
24770
24771 private int maxDomainSizeWhenEncodingEqNeqConstraints_ = 16;
24783 @java.lang.Override
24785 return ((bitField3_ & 0x10000000) != 0);
24786 }
24798 @java.lang.Override
24800 return maxDomainSizeWhenEncodingEqNeqConstraints_;
24801 }
24815
24816 maxDomainSizeWhenEncodingEqNeqConstraints_ = value;
24817 bitField3_ |= 0x10000000;
24818 onChanged();
24819 return this;
24820 }
24833 bitField3_ = (bitField3_ & ~0x10000000);
24834 maxDomainSizeWhenEncodingEqNeqConstraints_ = 16;
24835 onChanged();
24836 return this;
24837 }
24838
24839 private int maxNumCuts_ = 10000;
24852 @java.lang.Override
24853 public boolean hasMaxNumCuts() {
24854 return ((bitField3_ & 0x20000000) != 0);
24855 }
24868 @java.lang.Override
24869 public int getMaxNumCuts() {
24870 return maxNumCuts_;
24871 }
24885 public Builder setMaxNumCuts(int value) {
24886
24887 maxNumCuts_ = value;
24888 bitField3_ |= 0x20000000;
24889 onChanged();
24890 return this;
24891 }
24905 bitField3_ = (bitField3_ & ~0x20000000);
24906 maxNumCuts_ = 10000;
24907 onChanged();
24908 return this;
24909 }
24910
24911 private int cutLevel_ = 1;
24922 @java.lang.Override
24923 public boolean hasCutLevel() {
24924 return ((bitField3_ & 0x40000000) != 0);
24925 }
24936 @java.lang.Override
24937 public int getCutLevel() {
24938 return cutLevel_;
24939 }
24951 public Builder setCutLevel(int value) {
24952
24953 cutLevel_ = value;
24954 bitField3_ |= 0x40000000;
24955 onChanged();
24956 return this;
24957 }
24969 bitField3_ = (bitField3_ & ~0x40000000);
24970 cutLevel_ = 1;
24971 onChanged();
24972 return this;
24973 }
24974
24975 private boolean onlyAddCutsAtLevelZero_ ;
24985 @java.lang.Override
24986 public boolean hasOnlyAddCutsAtLevelZero() {
24987 return ((bitField3_ & 0x80000000) != 0);
24988 }
24998 @java.lang.Override
24999 public boolean getOnlyAddCutsAtLevelZero() {
25000 return onlyAddCutsAtLevelZero_;
25001 }
25012 public Builder setOnlyAddCutsAtLevelZero(boolean value) {
25013
25014 onlyAddCutsAtLevelZero_ = value;
25015 bitField3_ |= 0x80000000;
25016 onChanged();
25017 return this;
25018 }
25029 bitField3_ = (bitField3_ & ~0x80000000);
25030 onlyAddCutsAtLevelZero_ = false;
25031 onChanged();
25032 return this;
25033 }
25034
25035 private boolean addObjectiveCut_ ;
25048 @java.lang.Override
25049 public boolean hasAddObjectiveCut() {
25050 return ((bitField4_ & 0x00000001) != 0);
25051 }
25064 @java.lang.Override
25065 public boolean getAddObjectiveCut() {
25066 return addObjectiveCut_;
25067 }
25081 public Builder setAddObjectiveCut(boolean value) {
25082
25083 addObjectiveCut_ = value;
25084 bitField4_ |= 0x00000001;
25085 onChanged();
25086 return this;
25087 }
25101 bitField4_ = (bitField4_ & ~0x00000001);
25102 addObjectiveCut_ = false;
25103 onChanged();
25104 return this;
25105 }
25106
25107 private boolean addCgCuts_ = true;
25117 @java.lang.Override
25118 public boolean hasAddCgCuts() {
25119 return ((bitField4_ & 0x00000002) != 0);
25120 }
25130 @java.lang.Override
25131 public boolean getAddCgCuts() {
25132 return addCgCuts_;
25133 }
25144 public Builder setAddCgCuts(boolean value) {
25145
25146 addCgCuts_ = value;
25147 bitField4_ |= 0x00000002;
25148 onChanged();
25149 return this;
25150 }
25161 bitField4_ = (bitField4_ & ~0x00000002);
25162 addCgCuts_ = true;
25163 onChanged();
25164 return this;
25165 }
25166
25167 private boolean addMirCuts_ = true;
25177 @java.lang.Override
25178 public boolean hasAddMirCuts() {
25179 return ((bitField4_ & 0x00000004) != 0);
25180 }
25190 @java.lang.Override
25191 public boolean getAddMirCuts() {
25192 return addMirCuts_;
25193 }
25204 public Builder setAddMirCuts(boolean value) {
25205
25206 addMirCuts_ = value;
25207 bitField4_ |= 0x00000004;
25208 onChanged();
25209 return this;
25210 }
25221 bitField4_ = (bitField4_ & ~0x00000004);
25222 addMirCuts_ = true;
25223 onChanged();
25224 return this;
25225 }
25226
25227 private boolean addZeroHalfCuts_ = true;
25237 @java.lang.Override
25238 public boolean hasAddZeroHalfCuts() {
25239 return ((bitField4_ & 0x00000008) != 0);
25240 }
25250 @java.lang.Override
25251 public boolean getAddZeroHalfCuts() {
25252 return addZeroHalfCuts_;
25253 }
25264 public Builder setAddZeroHalfCuts(boolean value) {
25265
25266 addZeroHalfCuts_ = value;
25267 bitField4_ |= 0x00000008;
25268 onChanged();
25269 return this;
25270 }
25281 bitField4_ = (bitField4_ & ~0x00000008);
25282 addZeroHalfCuts_ = true;
25283 onChanged();
25284 return this;
25285 }
25286
25287 private boolean addCliqueCuts_ = true;
25298 @java.lang.Override
25299 public boolean hasAddCliqueCuts() {
25300 return ((bitField4_ & 0x00000010) != 0);
25301 }
25312 @java.lang.Override
25313 public boolean getAddCliqueCuts() {
25314 return addCliqueCuts_;
25315 }
25327 public Builder setAddCliqueCuts(boolean value) {
25328
25329 addCliqueCuts_ = value;
25330 bitField4_ |= 0x00000010;
25331 onChanged();
25332 return this;
25333 }
25345 bitField4_ = (bitField4_ & ~0x00000010);
25346 addCliqueCuts_ = true;
25347 onChanged();
25348 return this;
25349 }
25350
25351 private int maxAllDiffCutSize_ = 64;
25362 @java.lang.Override
25363 public boolean hasMaxAllDiffCutSize() {
25364 return ((bitField4_ & 0x00000020) != 0);
25365 }
25376 @java.lang.Override
25378 return maxAllDiffCutSize_;
25379 }
25391 public Builder setMaxAllDiffCutSize(int value) {
25392
25393 maxAllDiffCutSize_ = value;
25394 bitField4_ |= 0x00000020;
25395 onChanged();
25396 return this;
25397 }
25409 bitField4_ = (bitField4_ & ~0x00000020);
25410 maxAllDiffCutSize_ = 64;
25411 onChanged();
25412 return this;
25413 }
25414
25415 private boolean addLinMaxCuts_ = true;
25426 @java.lang.Override
25427 public boolean hasAddLinMaxCuts() {
25428 return ((bitField4_ & 0x00000040) != 0);
25429 }
25440 @java.lang.Override
25441 public boolean getAddLinMaxCuts() {
25442 return addLinMaxCuts_;
25443 }
25455 public Builder setAddLinMaxCuts(boolean value) {
25456
25457 addLinMaxCuts_ = value;
25458 bitField4_ |= 0x00000040;
25459 onChanged();
25460 return this;
25461 }
25473 bitField4_ = (bitField4_ & ~0x00000040);
25474 addLinMaxCuts_ = true;
25475 onChanged();
25476 return this;
25477 }
25478
25479 private int maxIntegerRoundingScaling_ = 600;
25495 @java.lang.Override
25497 return ((bitField4_ & 0x00000080) != 0);
25498 }
25514 @java.lang.Override
25516 return maxIntegerRoundingScaling_;
25517 }
25535
25536 maxIntegerRoundingScaling_ = value;
25537 bitField4_ |= 0x00000080;
25538 onChanged();
25539 return this;
25540 }
25557 bitField4_ = (bitField4_ & ~0x00000080);
25558 maxIntegerRoundingScaling_ = 600;
25559 onChanged();
25560 return this;
25561 }
25562
25563 private boolean addLpConstraintsLazily_ = true;
25575 @java.lang.Override
25576 public boolean hasAddLpConstraintsLazily() {
25577 return ((bitField4_ & 0x00000100) != 0);
25578 }
25590 @java.lang.Override
25591 public boolean getAddLpConstraintsLazily() {
25592 return addLpConstraintsLazily_;
25593 }
25606 public Builder setAddLpConstraintsLazily(boolean value) {
25607
25608 addLpConstraintsLazily_ = value;
25609 bitField4_ |= 0x00000100;
25610 onChanged();
25611 return this;
25612 }
25625 bitField4_ = (bitField4_ & ~0x00000100);
25626 addLpConstraintsLazily_ = true;
25627 onChanged();
25628 return this;
25629 }
25630
25631 private int rootLpIterations_ = 2000;
25643 @java.lang.Override
25644 public boolean hasRootLpIterations() {
25645 return ((bitField4_ & 0x00000200) != 0);
25646 }
25658 @java.lang.Override
25659 public int getRootLpIterations() {
25660 return rootLpIterations_;
25661 }
25674 public Builder setRootLpIterations(int value) {
25675
25676 rootLpIterations_ = value;
25677 bitField4_ |= 0x00000200;
25678 onChanged();
25679 return this;
25680 }
25693 bitField4_ = (bitField4_ & ~0x00000200);
25694 rootLpIterations_ = 2000;
25695 onChanged();
25696 return this;
25697 }
25698
25699 private double minOrthogonalityForLpConstraints_ = 0.05D;
25712 @java.lang.Override
25714 return ((bitField4_ & 0x00000400) != 0);
25715 }
25728 @java.lang.Override
25730 return minOrthogonalityForLpConstraints_;
25731 }
25746
25747 minOrthogonalityForLpConstraints_ = value;
25748 bitField4_ |= 0x00000400;
25749 onChanged();
25750 return this;
25751 }
25765 bitField4_ = (bitField4_ & ~0x00000400);
25766 minOrthogonalityForLpConstraints_ = 0.05D;
25767 onChanged();
25768 return this;
25769 }
25770
25771 private int maxCutRoundsAtLevelZero_ = 1;
25780 @java.lang.Override
25782 return ((bitField4_ & 0x00000800) != 0);
25783 }
25792 @java.lang.Override
25794 return maxCutRoundsAtLevelZero_;
25795 }
25806
25807 maxCutRoundsAtLevelZero_ = value;
25808 bitField4_ |= 0x00000800;
25809 onChanged();
25810 return this;
25811 }
25821 bitField4_ = (bitField4_ & ~0x00000800);
25822 maxCutRoundsAtLevelZero_ = 1;
25823 onChanged();
25824 return this;
25825 }
25826
25827 private int maxConsecutiveInactiveCount_ = 100;
25838 @java.lang.Override
25840 return ((bitField4_ & 0x00001000) != 0);
25841 }
25852 @java.lang.Override
25854 return maxConsecutiveInactiveCount_;
25855 }
25868
25869 maxConsecutiveInactiveCount_ = value;
25870 bitField4_ |= 0x00001000;
25871 onChanged();
25872 return this;
25873 }
25885 bitField4_ = (bitField4_ & ~0x00001000);
25886 maxConsecutiveInactiveCount_ = 100;
25887 onChanged();
25888 return this;
25889 }
25890
25891 private double cutMaxActiveCountValue_ = 10000000000D;
25902 @java.lang.Override
25903 public boolean hasCutMaxActiveCountValue() {
25904 return ((bitField4_ & 0x00002000) != 0);
25905 }
25916 @java.lang.Override
25918 return cutMaxActiveCountValue_;
25919 }
25931 public Builder setCutMaxActiveCountValue(double value) {
25932
25933 cutMaxActiveCountValue_ = value;
25934 bitField4_ |= 0x00002000;
25935 onChanged();
25936 return this;
25937 }
25949 bitField4_ = (bitField4_ & ~0x00002000);
25950 cutMaxActiveCountValue_ = 10000000000D;
25951 onChanged();
25952 return this;
25953 }
25954
25955 private double cutActiveCountDecay_ = 0.8D;
25960 @java.lang.Override
25961 public boolean hasCutActiveCountDecay() {
25962 return ((bitField4_ & 0x00004000) != 0);
25963 }
25968 @java.lang.Override
25969 public double getCutActiveCountDecay() {
25970 return cutActiveCountDecay_;
25971 }
25977 public Builder setCutActiveCountDecay(double value) {
25978
25979 cutActiveCountDecay_ = value;
25980 bitField4_ |= 0x00004000;
25981 onChanged();
25982 return this;
25983 }
25989 bitField4_ = (bitField4_ & ~0x00004000);
25990 cutActiveCountDecay_ = 0.8D;
25991 onChanged();
25992 return this;
25993 }
25994
25995 private int cutCleanupTarget_ = 1000;
26004 @java.lang.Override
26005 public boolean hasCutCleanupTarget() {
26006 return ((bitField4_ & 0x00008000) != 0);
26007 }
26016 @java.lang.Override
26017 public int getCutCleanupTarget() {
26018 return cutCleanupTarget_;
26019 }
26029 public Builder setCutCleanupTarget(int value) {
26030
26031 cutCleanupTarget_ = value;
26032 bitField4_ |= 0x00008000;
26033 onChanged();
26034 return this;
26035 }
26045 bitField4_ = (bitField4_ & ~0x00008000);
26046 cutCleanupTarget_ = 1000;
26047 onChanged();
26048 return this;
26049 }
26050
26051 private int newConstraintsBatchSize_ = 50;
26061 @java.lang.Override
26063 return ((bitField4_ & 0x00010000) != 0);
26064 }
26074 @java.lang.Override
26076 return newConstraintsBatchSize_;
26077 }
26089
26090 newConstraintsBatchSize_ = value;
26091 bitField4_ |= 0x00010000;
26092 onChanged();
26093 return this;
26094 }
26105 bitField4_ = (bitField4_ & ~0x00010000);
26106 newConstraintsBatchSize_ = 50;
26107 onChanged();
26108 return this;
26109 }
26110
26111 private int searchBranching_ = 0;
26116 @java.lang.Override public boolean hasSearchBranching() {
26117 return ((bitField4_ & 0x00020000) != 0);
26118 }
26123 @java.lang.Override
26125 com.google.ortools.sat.SatParameters.SearchBranching result = com.google.ortools.sat.SatParameters.SearchBranching.forNumber(searchBranching_);
26126 return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
26127 }
26133 public Builder setSearchBranching(com.google.ortools.sat.SatParameters.SearchBranching value) {
26134 if (value == null) {
26135 throw new NullPointerException();
26136 }
26137 bitField4_ |= 0x00020000;
26138 searchBranching_ = value.getNumber();
26139 onChanged();
26140 return this;
26141 }
26147 bitField4_ = (bitField4_ & ~0x00020000);
26148 searchBranching_ = 0;
26149 onChanged();
26150 return this;
26151 }
26152
26153 private int hintConflictLimit_ = 10;
26162 @java.lang.Override
26163 public boolean hasHintConflictLimit() {
26164 return ((bitField4_ & 0x00040000) != 0);
26165 }
26174 @java.lang.Override
26176 return hintConflictLimit_;
26177 }
26187 public Builder setHintConflictLimit(int value) {
26188
26189 hintConflictLimit_ = value;
26190 bitField4_ |= 0x00040000;
26191 onChanged();
26192 return this;
26193 }
26203 bitField4_ = (bitField4_ & ~0x00040000);
26204 hintConflictLimit_ = 10;
26205 onChanged();
26206 return this;
26207 }
26208
26209 private boolean repairHint_ ;
26221 @java.lang.Override
26222 public boolean hasRepairHint() {
26223 return ((bitField4_ & 0x00080000) != 0);
26224 }
26236 @java.lang.Override
26237 public boolean getRepairHint() {
26238 return repairHint_;
26239 }
26252 public Builder setRepairHint(boolean value) {
26253
26254 repairHint_ = value;
26255 bitField4_ |= 0x00080000;
26256 onChanged();
26257 return this;
26258 }
26271 bitField4_ = (bitField4_ & ~0x00080000);
26272 repairHint_ = false;
26273 onChanged();
26274 return this;
26275 }
26276
26277 private boolean fixVariablesToTheirHintedValue_ ;
26287 @java.lang.Override
26289 return ((bitField4_ & 0x00100000) != 0);
26290 }
26300 @java.lang.Override
26302 return fixVariablesToTheirHintedValue_;
26303 }
26315
26316 fixVariablesToTheirHintedValue_ = value;
26317 bitField4_ |= 0x00100000;
26318 onChanged();
26319 return this;
26320 }
26331 bitField4_ = (bitField4_ & ~0x00100000);
26332 fixVariablesToTheirHintedValue_ = false;
26333 onChanged();
26334 return this;
26335 }
26336
26337 private boolean exploitIntegerLpSolution_ = true;
26349 @java.lang.Override
26351 return ((bitField4_ & 0x00200000) != 0);
26352 }
26364 @java.lang.Override
26366 return exploitIntegerLpSolution_;
26367 }
26380 public Builder setExploitIntegerLpSolution(boolean value) {
26381
26382 exploitIntegerLpSolution_ = value;
26383 bitField4_ |= 0x00200000;
26384 onChanged();
26385 return this;
26386 }
26399 bitField4_ = (bitField4_ & ~0x00200000);
26400 exploitIntegerLpSolution_ = true;
26401 onChanged();
26402 return this;
26403 }
26404
26405 private boolean exploitAllLpSolution_ = true;
26416 @java.lang.Override
26417 public boolean hasExploitAllLpSolution() {
26418 return ((bitField4_ & 0x00400000) != 0);
26419 }
26430 @java.lang.Override
26431 public boolean getExploitAllLpSolution() {
26432 return exploitAllLpSolution_;
26433 }
26445 public Builder setExploitAllLpSolution(boolean value) {
26446
26447 exploitAllLpSolution_ = value;
26448 bitField4_ |= 0x00400000;
26449 onChanged();
26450 return this;
26451 }
26463 bitField4_ = (bitField4_ & ~0x00400000);
26464 exploitAllLpSolution_ = true;
26465 onChanged();
26466 return this;
26467 }
26468
26469 private boolean exploitBestSolution_ ;
26478 @java.lang.Override
26479 public boolean hasExploitBestSolution() {
26480 return ((bitField4_ & 0x00800000) != 0);
26481 }
26490 @java.lang.Override
26491 public boolean getExploitBestSolution() {
26492 return exploitBestSolution_;
26493 }
26503 public Builder setExploitBestSolution(boolean value) {
26504
26505 exploitBestSolution_ = value;
26506 bitField4_ |= 0x00800000;
26507 onChanged();
26508 return this;
26509 }
26519 bitField4_ = (bitField4_ & ~0x00800000);
26520 exploitBestSolution_ = false;
26521 onChanged();
26522 return this;
26523 }
26524
26525 private boolean exploitRelaxationSolution_ ;
26536 @java.lang.Override
26538 return ((bitField4_ & 0x01000000) != 0);
26539 }
26550 @java.lang.Override
26552 return exploitRelaxationSolution_;
26553 }
26566
26567 exploitRelaxationSolution_ = value;
26568 bitField4_ |= 0x01000000;
26569 onChanged();
26570 return this;
26571 }
26583 bitField4_ = (bitField4_ & ~0x01000000);
26584 exploitRelaxationSolution_ = false;
26585 onChanged();
26586 return this;
26587 }
26588
26589 private boolean exploitObjective_ = true;
26599 @java.lang.Override
26600 public boolean hasExploitObjective() {
26601 return ((bitField4_ & 0x02000000) != 0);
26602 }
26612 @java.lang.Override
26613 public boolean getExploitObjective() {
26614 return exploitObjective_;
26615 }
26626 public Builder setExploitObjective(boolean value) {
26627
26628 exploitObjective_ = value;
26629 bitField4_ |= 0x02000000;
26630 onChanged();
26631 return this;
26632 }
26643 bitField4_ = (bitField4_ & ~0x02000000);
26644 exploitObjective_ = true;
26645 onChanged();
26646 return this;
26647 }
26648
26649 private long probingPeriodAtRoot_ ;
26660 @java.lang.Override
26661 public boolean hasProbingPeriodAtRoot() {
26662 return ((bitField4_ & 0x04000000) != 0);
26663 }
26674 @java.lang.Override
26676 return probingPeriodAtRoot_;
26677 }
26689 public Builder setProbingPeriodAtRoot(long value) {
26690
26691 probingPeriodAtRoot_ = value;
26692 bitField4_ |= 0x04000000;
26693 onChanged();
26694 return this;
26695 }
26707 bitField4_ = (bitField4_ & ~0x04000000);
26708 probingPeriodAtRoot_ = 0L;
26709 onChanged();
26710 return this;
26711 }
26712
26713 private boolean useProbingSearch_ ;
26724 @java.lang.Override
26725 public boolean hasUseProbingSearch() {
26726 return ((bitField4_ & 0x08000000) != 0);
26727 }
26738 @java.lang.Override
26739 public boolean getUseProbingSearch() {
26740 return useProbingSearch_;
26741 }
26753 public Builder setUseProbingSearch(boolean value) {
26754
26755 useProbingSearch_ = value;
26756 bitField4_ |= 0x08000000;
26757 onChanged();
26758 return this;
26759 }
26771 bitField4_ = (bitField4_ & ~0x08000000);
26772 useProbingSearch_ = false;
26773 onChanged();
26774 return this;
26775 }
26776
26777 private boolean useShavingInProbingSearch_ = true;
26787 @java.lang.Override
26789 return ((bitField4_ & 0x10000000) != 0);
26790 }
26800 @java.lang.Override
26802 return useShavingInProbingSearch_;
26803 }
26815
26816 useShavingInProbingSearch_ = value;
26817 bitField4_ |= 0x10000000;
26818 onChanged();
26819 return this;
26820 }
26831 bitField4_ = (bitField4_ & ~0x10000000);
26832 useShavingInProbingSearch_ = true;
26833 onChanged();
26834 return this;
26835 }
26836
26837 private double shavingSearchDeterministicTime_ = 0.001D;
26847 @java.lang.Override
26849 return ((bitField4_ & 0x20000000) != 0);
26850 }
26860 @java.lang.Override
26862 return shavingSearchDeterministicTime_;
26863 }
26875
26876 shavingSearchDeterministicTime_ = value;
26877 bitField4_ |= 0x20000000;
26878 onChanged();
26879 return this;
26880 }
26891 bitField4_ = (bitField4_ & ~0x20000000);
26892 shavingSearchDeterministicTime_ = 0.001D;
26893 onChanged();
26894 return this;
26895 }
26896
26897 private boolean useObjectiveLbSearch_ ;
26907 @java.lang.Override
26908 public boolean hasUseObjectiveLbSearch() {
26909 return ((bitField4_ & 0x40000000) != 0);
26910 }
26920 @java.lang.Override
26921 public boolean getUseObjectiveLbSearch() {
26922 return useObjectiveLbSearch_;
26923 }
26934 public Builder setUseObjectiveLbSearch(boolean value) {
26935
26936 useObjectiveLbSearch_ = value;
26937 bitField4_ |= 0x40000000;
26938 onChanged();
26939 return this;
26940 }
26951 bitField4_ = (bitField4_ & ~0x40000000);
26952 useObjectiveLbSearch_ = false;
26953 onChanged();
26954 return this;
26955 }
26956
26957 private boolean useObjectiveShavingSearch_ ;
26968 @java.lang.Override
26970 return ((bitField4_ & 0x80000000) != 0);
26971 }
26982 @java.lang.Override
26984 return useObjectiveShavingSearch_;
26985 }
26998
26999 useObjectiveShavingSearch_ = value;
27000 bitField4_ |= 0x80000000;
27001 onChanged();
27002 return this;
27003 }
27015 bitField4_ = (bitField4_ & ~0x80000000);
27016 useObjectiveShavingSearch_ = false;
27017 onChanged();
27018 return this;
27019 }
27020
27021 private long pseudoCostReliabilityThreshold_ = 100L;
27031 @java.lang.Override
27033 return ((bitField5_ & 0x00000001) != 0);
27034 }
27044 @java.lang.Override
27046 return pseudoCostReliabilityThreshold_;
27047 }
27059
27060 pseudoCostReliabilityThreshold_ = value;
27061 bitField5_ |= 0x00000001;
27062 onChanged();
27063 return this;
27064 }
27075 bitField5_ = (bitField5_ & ~0x00000001);
27076 pseudoCostReliabilityThreshold_ = 100L;
27077 onChanged();
27078 return this;
27079 }
27080
27081 private boolean optimizeWithCore_ ;
27093 @java.lang.Override
27094 public boolean hasOptimizeWithCore() {
27095 return ((bitField5_ & 0x00000002) != 0);
27096 }
27108 @java.lang.Override
27109 public boolean getOptimizeWithCore() {
27110 return optimizeWithCore_;
27111 }
27124 public Builder setOptimizeWithCore(boolean value) {
27125
27126 optimizeWithCore_ = value;
27127 bitField5_ |= 0x00000002;
27128 onChanged();
27129 return this;
27130 }
27143 bitField5_ = (bitField5_ & ~0x00000002);
27144 optimizeWithCore_ = false;
27145 onChanged();
27146 return this;
27147 }
27148
27149 private boolean optimizeWithLbTreeSearch_ ;
27162 @java.lang.Override
27164 return ((bitField5_ & 0x00000004) != 0);
27165 }
27178 @java.lang.Override
27180 return optimizeWithLbTreeSearch_;
27181 }
27195 public Builder setOptimizeWithLbTreeSearch(boolean value) {
27196
27197 optimizeWithLbTreeSearch_ = value;
27198 bitField5_ |= 0x00000004;
27199 onChanged();
27200 return this;
27201 }
27215 bitField5_ = (bitField5_ & ~0x00000004);
27216 optimizeWithLbTreeSearch_ = false;
27217 onChanged();
27218 return this;
27219 }
27220
27221 private int binarySearchNumConflicts_ = -1;
27233 @java.lang.Override
27235 return ((bitField5_ & 0x00000008) != 0);
27236 }
27248 @java.lang.Override
27250 return binarySearchNumConflicts_;
27251 }
27265
27266 binarySearchNumConflicts_ = value;
27267 bitField5_ |= 0x00000008;
27268 onChanged();
27269 return this;
27270 }
27283 bitField5_ = (bitField5_ & ~0x00000008);
27284 binarySearchNumConflicts_ = -1;
27285 onChanged();
27286 return this;
27287 }
27288
27289 private boolean optimizeWithMaxHs_ ;
27303 @java.lang.Override
27304 public boolean hasOptimizeWithMaxHs() {
27305 return ((bitField5_ & 0x00000010) != 0);
27306 }
27320 @java.lang.Override
27321 public boolean getOptimizeWithMaxHs() {
27322 return optimizeWithMaxHs_;
27323 }
27338 public Builder setOptimizeWithMaxHs(boolean value) {
27339
27340 optimizeWithMaxHs_ = value;
27341 bitField5_ |= 0x00000010;
27342 onChanged();
27343 return this;
27344 }
27359 bitField5_ = (bitField5_ & ~0x00000010);
27360 optimizeWithMaxHs_ = false;
27361 onChanged();
27362 return this;
27363 }
27364
27365 private boolean testFeasibilityJump_ ;
27378 @java.lang.Override
27379 public boolean hasTestFeasibilityJump() {
27380 return ((bitField5_ & 0x00000020) != 0);
27381 }
27394 @java.lang.Override
27395 public boolean getTestFeasibilityJump() {
27396 return testFeasibilityJump_;
27397 }
27411 public Builder setTestFeasibilityJump(boolean value) {
27412
27413 testFeasibilityJump_ = value;
27414 bitField5_ |= 0x00000020;
27415 onChanged();
27416 return this;
27417 }
27431 bitField5_ = (bitField5_ & ~0x00000020);
27432 testFeasibilityJump_ = false;
27433 onChanged();
27434 return this;
27435 }
27436
27437 private long feasibilityJumpMaxNumValuesScanned_ = 4096L;
27447 @java.lang.Override
27449 return ((bitField5_ & 0x00000040) != 0);
27450 }
27460 @java.lang.Override
27462 return feasibilityJumpMaxNumValuesScanned_;
27463 }
27475
27476 feasibilityJumpMaxNumValuesScanned_ = value;
27477 bitField5_ |= 0x00000040;
27478 onChanged();
27479 return this;
27480 }
27491 bitField5_ = (bitField5_ & ~0x00000040);
27492 feasibilityJumpMaxNumValuesScanned_ = 4096L;
27493 onChanged();
27494 return this;
27495 }
27496
27497 private boolean feasibilityJumpProtectLinearFeasibility_ = true;
27509 @java.lang.Override
27511 return ((bitField5_ & 0x00000080) != 0);
27512 }
27524 @java.lang.Override
27526 return feasibilityJumpProtectLinearFeasibility_;
27527 }
27541
27542 feasibilityJumpProtectLinearFeasibility_ = value;
27543 bitField5_ |= 0x00000080;
27544 onChanged();
27545 return this;
27546 }
27559 bitField5_ = (bitField5_ & ~0x00000080);
27560 feasibilityJumpProtectLinearFeasibility_ = true;
27561 onChanged();
27562 return this;
27563 }
27564
27565 private double feasibilityJumpDecay_ = 1D;
27575 @java.lang.Override
27576 public boolean hasFeasibilityJumpDecay() {
27577 return ((bitField5_ & 0x00000100) != 0);
27578 }
27588 @java.lang.Override
27589 public double getFeasibilityJumpDecay() {
27590 return feasibilityJumpDecay_;
27591 }
27602 public Builder setFeasibilityJumpDecay(double value) {
27603
27604 feasibilityJumpDecay_ = value;
27605 bitField5_ |= 0x00000100;
27606 onChanged();
27607 return this;
27608 }
27619 bitField5_ = (bitField5_ & ~0x00000100);
27620 feasibilityJumpDecay_ = 1D;
27621 onChanged();
27622 return this;
27623 }
27624
27625 private double feasibilityJumpVarRandomizationProbability_ ;
27635 @java.lang.Override
27637 return ((bitField5_ & 0x00000200) != 0);
27638 }
27648 @java.lang.Override
27650 return feasibilityJumpVarRandomizationProbability_;
27651 }
27663
27664 feasibilityJumpVarRandomizationProbability_ = value;
27665 bitField5_ |= 0x00000200;
27666 onChanged();
27667 return this;
27668 }
27679 bitField5_ = (bitField5_ & ~0x00000200);
27680 feasibilityJumpVarRandomizationProbability_ = 0D;
27681 onChanged();
27682 return this;
27683 }
27684
27685 private double feasibilityJumpVarPerburbationRangeRatio_ = 0.2D;
27695 @java.lang.Override
27697 return ((bitField5_ & 0x00000400) != 0);
27698 }
27708 @java.lang.Override
27710 return feasibilityJumpVarPerburbationRangeRatio_;
27711 }
27723
27724 feasibilityJumpVarPerburbationRangeRatio_ = value;
27725 bitField5_ |= 0x00000400;
27726 onChanged();
27727 return this;
27728 }
27739 bitField5_ = (bitField5_ & ~0x00000400);
27740 feasibilityJumpVarPerburbationRangeRatio_ = 0.2D;
27741 onChanged();
27742 return this;
27743 }
27744
27745 private boolean feasibilityJumpEnableRestarts_ = true;
27756 @java.lang.Override
27758 return ((bitField5_ & 0x00000800) != 0);
27759 }
27770 @java.lang.Override
27772 return feasibilityJumpEnableRestarts_;
27773 }
27786
27787 feasibilityJumpEnableRestarts_ = value;
27788 bitField5_ |= 0x00000800;
27789 onChanged();
27790 return this;
27791 }
27803 bitField5_ = (bitField5_ & ~0x00000800);
27804 feasibilityJumpEnableRestarts_ = true;
27805 onChanged();
27806 return this;
27807 }
27808
27809 private int numViolationLs_ ;
27820 @java.lang.Override
27821 public boolean hasNumViolationLs() {
27822 return ((bitField5_ & 0x00001000) != 0);
27823 }
27834 @java.lang.Override
27835 public int getNumViolationLs() {
27836 return numViolationLs_;
27837 }
27849 public Builder setNumViolationLs(int value) {
27850
27851 numViolationLs_ = value;
27852 bitField5_ |= 0x00001000;
27853 onChanged();
27854 return this;
27855 }
27867 bitField5_ = (bitField5_ & ~0x00001000);
27868 numViolationLs_ = 0;
27869 onChanged();
27870 return this;
27871 }
27872
27873 private int violationLsPerturbationPeriod_ = 100;
27882 @java.lang.Override
27884 return ((bitField5_ & 0x00002000) != 0);
27885 }
27894 @java.lang.Override
27896 return violationLsPerturbationPeriod_;
27897 }
27908
27909 violationLsPerturbationPeriod_ = value;
27910 bitField5_ |= 0x00002000;
27911 onChanged();
27912 return this;
27913 }
27923 bitField5_ = (bitField5_ & ~0x00002000);
27924 violationLsPerturbationPeriod_ = 100;
27925 onChanged();
27926 return this;
27927 }
27928
27929 private int sharedTreeNumWorkers_ ;
27942 @java.lang.Override
27943 public boolean hasSharedTreeNumWorkers() {
27944 return ((bitField5_ & 0x00004000) != 0);
27945 }
27958 @java.lang.Override
27960 return sharedTreeNumWorkers_;
27961 }
27976
27977 sharedTreeNumWorkers_ = value;
27978 bitField5_ |= 0x00004000;
27979 onChanged();
27980 return this;
27981 }
27995 bitField5_ = (bitField5_ & ~0x00004000);
27996 sharedTreeNumWorkers_ = 0;
27997 onChanged();
27998 return this;
27999 }
28000
28001 private boolean useSharedTreeSearch_ ;
28010 @java.lang.Override
28011 public boolean hasUseSharedTreeSearch() {
28012 return ((bitField5_ & 0x00008000) != 0);
28013 }
28022 @java.lang.Override
28023 public boolean getUseSharedTreeSearch() {
28024 return useSharedTreeSearch_;
28025 }
28035 public Builder setUseSharedTreeSearch(boolean value) {
28036
28037 useSharedTreeSearch_ = value;
28038 bitField5_ |= 0x00008000;
28039 onChanged();
28040 return this;
28041 }
28051 bitField5_ = (bitField5_ & ~0x00008000);
28052 useSharedTreeSearch_ = false;
28053 onChanged();
28054 return this;
28055 }
28056
28057 private double sharedTreeWorkerObjectiveSplitProbability_ = 0.5D;
28068 @java.lang.Override
28070 return ((bitField5_ & 0x00010000) != 0);
28071 }
28082 @java.lang.Override
28084 return sharedTreeWorkerObjectiveSplitProbability_;
28085 }
28098
28099 sharedTreeWorkerObjectiveSplitProbability_ = value;
28100 bitField5_ |= 0x00010000;
28101 onChanged();
28102 return this;
28103 }
28115 bitField5_ = (bitField5_ & ~0x00010000);
28116 sharedTreeWorkerObjectiveSplitProbability_ = 0.5D;
28117 onChanged();
28118 return this;
28119 }
28120
28121 private int sharedTreeMaxNodesPerWorker_ = 128;
28133 @java.lang.Override
28135 return ((bitField5_ & 0x00020000) != 0);
28136 }
28148 @java.lang.Override
28150 return sharedTreeMaxNodesPerWorker_;
28151 }
28165
28166 sharedTreeMaxNodesPerWorker_ = value;
28167 bitField5_ |= 0x00020000;
28168 onChanged();
28169 return this;
28170 }
28183 bitField5_ = (bitField5_ & ~0x00020000);
28184 sharedTreeMaxNodesPerWorker_ = 128;
28185 onChanged();
28186 return this;
28187 }
28188
28189 private int sharedTreeSplitStrategy_ = 0;
28194 @java.lang.Override public boolean hasSharedTreeSplitStrategy() {
28195 return ((bitField5_ & 0x00040000) != 0);
28196 }
28201 @java.lang.Override
28203 com.google.ortools.sat.SatParameters.SharedTreeSplitStrategy result = com.google.ortools.sat.SatParameters.SharedTreeSplitStrategy.forNumber(sharedTreeSplitStrategy_);
28204 return result == null ? com.google.ortools.sat.SatParameters.SharedTreeSplitStrategy.SPLIT_STRATEGY_AUTO : result;
28205 }
28211 public Builder setSharedTreeSplitStrategy(com.google.ortools.sat.SatParameters.SharedTreeSplitStrategy value) {
28212 if (value == null) {
28213 throw new NullPointerException();
28214 }
28215 bitField5_ |= 0x00040000;
28216 sharedTreeSplitStrategy_ = value.getNumber();
28217 onChanged();
28218 return this;
28219 }
28225 bitField5_ = (bitField5_ & ~0x00040000);
28226 sharedTreeSplitStrategy_ = 0;
28227 onChanged();
28228 return this;
28229 }
28230
28231 private boolean enumerateAllSolutions_ ;
28246 @java.lang.Override
28247 public boolean hasEnumerateAllSolutions() {
28248 return ((bitField5_ & 0x00080000) != 0);
28249 }
28264 @java.lang.Override
28265 public boolean getEnumerateAllSolutions() {
28266 return enumerateAllSolutions_;
28267 }
28283 public Builder setEnumerateAllSolutions(boolean value) {
28284
28285 enumerateAllSolutions_ = value;
28286 bitField5_ |= 0x00080000;
28287 onChanged();
28288 return this;
28289 }
28305 bitField5_ = (bitField5_ & ~0x00080000);
28306 enumerateAllSolutions_ = false;
28307 onChanged();
28308 return this;
28309 }
28310
28311 private boolean keepAllFeasibleSolutionsInPresolve_ ;
28327 @java.lang.Override
28329 return ((bitField5_ & 0x00100000) != 0);
28330 }
28346 @java.lang.Override
28348 return keepAllFeasibleSolutionsInPresolve_;
28349 }
28367
28368 keepAllFeasibleSolutionsInPresolve_ = value;
28369 bitField5_ |= 0x00100000;
28370 onChanged();
28371 return this;
28372 }
28389 bitField5_ = (bitField5_ & ~0x00100000);
28390 keepAllFeasibleSolutionsInPresolve_ = false;
28391 onChanged();
28392 return this;
28393 }
28394
28395 private boolean fillTightenedDomainsInResponse_ ;
28408 @java.lang.Override
28410 return ((bitField5_ & 0x00200000) != 0);
28411 }
28424 @java.lang.Override
28426 return fillTightenedDomainsInResponse_;
28427 }
28442
28443 fillTightenedDomainsInResponse_ = value;
28444 bitField5_ |= 0x00200000;
28445 onChanged();
28446 return this;
28447 }
28461 bitField5_ = (bitField5_ & ~0x00200000);
28462 fillTightenedDomainsInResponse_ = false;
28463 onChanged();
28464 return this;
28465 }
28466
28467 private boolean fillAdditionalSolutionsInResponse_ ;
28485 @java.lang.Override
28487 return ((bitField5_ & 0x00400000) != 0);
28488 }
28506 @java.lang.Override
28508 return fillAdditionalSolutionsInResponse_;
28509 }
28529
28530 fillAdditionalSolutionsInResponse_ = value;
28531 bitField5_ |= 0x00400000;
28532 onChanged();
28533 return this;
28534 }
28553 bitField5_ = (bitField5_ & ~0x00400000);
28554 fillAdditionalSolutionsInResponse_ = false;
28555 onChanged();
28556 return this;
28557 }
28558
28559 private boolean instantiateAllVariables_ = true;
28571 @java.lang.Override
28573 return ((bitField5_ & 0x00800000) != 0);
28574 }
28586 @java.lang.Override
28588 return instantiateAllVariables_;
28589 }
28602 public Builder setInstantiateAllVariables(boolean value) {
28603
28604 instantiateAllVariables_ = value;
28605 bitField5_ |= 0x00800000;
28606 onChanged();
28607 return this;
28608 }
28621 bitField5_ = (bitField5_ & ~0x00800000);
28622 instantiateAllVariables_ = true;
28623 onChanged();
28624 return this;
28625 }
28626
28627 private boolean autoDetectGreaterThanAtLeastOneOf_ = true;
28639 @java.lang.Override
28641 return ((bitField5_ & 0x01000000) != 0);
28642 }
28654 @java.lang.Override
28656 return autoDetectGreaterThanAtLeastOneOf_;
28657 }
28671
28672 autoDetectGreaterThanAtLeastOneOf_ = value;
28673 bitField5_ |= 0x01000000;
28674 onChanged();
28675 return this;
28676 }
28689 bitField5_ = (bitField5_ & ~0x01000000);
28690 autoDetectGreaterThanAtLeastOneOf_ = true;
28691 onChanged();
28692 return this;
28693 }
28694
28695 private boolean stopAfterFirstSolution_ ;
28704 @java.lang.Override
28705 public boolean hasStopAfterFirstSolution() {
28706 return ((bitField5_ & 0x02000000) != 0);
28707 }
28716 @java.lang.Override
28717 public boolean getStopAfterFirstSolution() {
28718 return stopAfterFirstSolution_;
28719 }
28729 public Builder setStopAfterFirstSolution(boolean value) {
28730
28731 stopAfterFirstSolution_ = value;
28732 bitField5_ |= 0x02000000;
28733 onChanged();
28734 return this;
28735 }
28745 bitField5_ = (bitField5_ & ~0x02000000);
28746 stopAfterFirstSolution_ = false;
28747 onChanged();
28748 return this;
28749 }
28750
28751 private boolean stopAfterPresolve_ ;
28761 @java.lang.Override
28762 public boolean hasStopAfterPresolve() {
28763 return ((bitField5_ & 0x04000000) != 0);
28764 }
28774 @java.lang.Override
28775 public boolean getStopAfterPresolve() {
28776 return stopAfterPresolve_;
28777 }
28788 public Builder setStopAfterPresolve(boolean value) {
28789
28790 stopAfterPresolve_ = value;
28791 bitField5_ |= 0x04000000;
28792 onChanged();
28793 return this;
28794 }
28805 bitField5_ = (bitField5_ & ~0x04000000);
28806 stopAfterPresolve_ = false;
28807 onChanged();
28808 return this;
28809 }
28810
28811 private boolean stopAfterRootPropagation_ ;
28816 @java.lang.Override
28818 return ((bitField5_ & 0x08000000) != 0);
28819 }
28824 @java.lang.Override
28826 return stopAfterRootPropagation_;
28827 }
28833 public Builder setStopAfterRootPropagation(boolean value) {
28834
28835 stopAfterRootPropagation_ = value;
28836 bitField5_ |= 0x08000000;
28837 onChanged();
28838 return this;
28839 }
28845 bitField5_ = (bitField5_ & ~0x08000000);
28846 stopAfterRootPropagation_ = false;
28847 onChanged();
28848 return this;
28849 }
28850
28851 private boolean useLnsOnly_ ;
28860 @java.lang.Override
28861 public boolean hasUseLnsOnly() {
28862 return ((bitField5_ & 0x10000000) != 0);
28863 }
28872 @java.lang.Override
28873 public boolean getUseLnsOnly() {
28874 return useLnsOnly_;
28875 }
28885 public Builder setUseLnsOnly(boolean value) {
28886
28887 useLnsOnly_ = value;
28888 bitField5_ |= 0x10000000;
28889 onChanged();
28890 return this;
28891 }
28901 bitField5_ = (bitField5_ & ~0x10000000);
28902 useLnsOnly_ = false;
28903 onChanged();
28904 return this;
28905 }
28906
28907 private int solutionPoolSize_ = 3;
28918 @java.lang.Override
28919 public boolean hasSolutionPoolSize() {
28920 return ((bitField5_ & 0x20000000) != 0);
28921 }
28932 @java.lang.Override
28933 public int getSolutionPoolSize() {
28934 return solutionPoolSize_;
28935 }
28947 public Builder setSolutionPoolSize(int value) {
28948
28949 solutionPoolSize_ = value;
28950 bitField5_ |= 0x20000000;
28951 onChanged();
28952 return this;
28953 }
28965 bitField5_ = (bitField5_ & ~0x20000000);
28966 solutionPoolSize_ = 3;
28967 onChanged();
28968 return this;
28969 }
28970
28971 private boolean useRinsLns_ = true;
28980 @java.lang.Override
28981 public boolean hasUseRinsLns() {
28982 return ((bitField5_ & 0x40000000) != 0);
28983 }
28992 @java.lang.Override
28993 public boolean getUseRinsLns() {
28994 return useRinsLns_;
28995 }
29005 public Builder setUseRinsLns(boolean value) {
29006
29007 useRinsLns_ = value;
29008 bitField5_ |= 0x40000000;
29009 onChanged();
29010 return this;
29011 }
29021 bitField5_ = (bitField5_ & ~0x40000000);
29022 useRinsLns_ = true;
29023 onChanged();
29024 return this;
29025 }
29026
29027 private boolean useFeasibilityPump_ = true;
29036 @java.lang.Override
29037 public boolean hasUseFeasibilityPump() {
29038 return ((bitField5_ & 0x80000000) != 0);
29039 }
29048 @java.lang.Override
29049 public boolean getUseFeasibilityPump() {
29050 return useFeasibilityPump_;
29051 }
29061 public Builder setUseFeasibilityPump(boolean value) {
29062
29063 useFeasibilityPump_ = value;
29064 bitField5_ |= 0x80000000;
29065 onChanged();
29066 return this;
29067 }
29077 bitField5_ = (bitField5_ & ~0x80000000);
29078 useFeasibilityPump_ = true;
29079 onChanged();
29080 return this;
29081 }
29082
29083 private boolean useLbRelaxLns_ ;
29094 @java.lang.Override
29095 public boolean hasUseLbRelaxLns() {
29096 return ((bitField6_ & 0x00000001) != 0);
29097 }
29108 @java.lang.Override
29109 public boolean getUseLbRelaxLns() {
29110 return useLbRelaxLns_;
29111 }
29123 public Builder setUseLbRelaxLns(boolean value) {
29124
29125 useLbRelaxLns_ = value;
29126 bitField6_ |= 0x00000001;
29127 onChanged();
29128 return this;
29129 }
29141 bitField6_ = (bitField6_ & ~0x00000001);
29142 useLbRelaxLns_ = false;
29143 onChanged();
29144 return this;
29145 }
29146
29147 private int fpRounding_ = 2;
29152 @java.lang.Override public boolean hasFpRounding() {
29153 return ((bitField6_ & 0x00000002) != 0);
29154 }
29159 @java.lang.Override
29161 com.google.ortools.sat.SatParameters.FPRoundingMethod result = com.google.ortools.sat.SatParameters.FPRoundingMethod.forNumber(fpRounding_);
29162 return result == null ? com.google.ortools.sat.SatParameters.FPRoundingMethod.PROPAGATION_ASSISTED : result;
29163 }
29169 public Builder setFpRounding(com.google.ortools.sat.SatParameters.FPRoundingMethod value) {
29170 if (value == null) {
29171 throw new NullPointerException();
29172 }
29173 bitField6_ |= 0x00000002;
29174 fpRounding_ = value.getNumber();
29175 onChanged();
29176 return this;
29177 }
29183 bitField6_ = (bitField6_ & ~0x00000002);
29184 fpRounding_ = 2;
29185 onChanged();
29186 return this;
29187 }
29188
29189 private boolean diversifyLnsParams_ ;
29198 @java.lang.Override
29199 public boolean hasDiversifyLnsParams() {
29200 return ((bitField6_ & 0x00000004) != 0);
29201 }
29210 @java.lang.Override
29211 public boolean getDiversifyLnsParams() {
29212 return diversifyLnsParams_;
29213 }
29223 public Builder setDiversifyLnsParams(boolean value) {
29224
29225 diversifyLnsParams_ = value;
29226 bitField6_ |= 0x00000004;
29227 onChanged();
29228 return this;
29229 }
29239 bitField6_ = (bitField6_ & ~0x00000004);
29240 diversifyLnsParams_ = false;
29241 onChanged();
29242 return this;
29243 }
29244
29245 private boolean randomizeSearch_ ;
29254 @java.lang.Override
29255 public boolean hasRandomizeSearch() {
29256 return ((bitField6_ & 0x00000008) != 0);
29257 }
29266 @java.lang.Override
29267 public boolean getRandomizeSearch() {
29268 return randomizeSearch_;
29269 }
29279 public Builder setRandomizeSearch(boolean value) {
29280
29281 randomizeSearch_ = value;
29282 bitField6_ |= 0x00000008;
29283 onChanged();
29284 return this;
29285 }
29295 bitField6_ = (bitField6_ & ~0x00000008);
29296 randomizeSearch_ = false;
29297 onChanged();
29298 return this;
29299 }
29300
29301 private long searchRandomizationTolerance_ ;
29316 @java.lang.Override
29318 return ((bitField6_ & 0x00000010) != 0);
29319 }
29334 @java.lang.Override
29336 return searchRandomizationTolerance_;
29337 }
29354
29355 searchRandomizationTolerance_ = value;
29356 bitField6_ |= 0x00000010;
29357 onChanged();
29358 return this;
29359 }
29375 bitField6_ = (bitField6_ & ~0x00000010);
29376 searchRandomizationTolerance_ = 0L;
29377 onChanged();
29378 return this;
29379 }
29380
29381 private boolean useOptionalVariables_ ;
29395 @java.lang.Override
29396 public boolean hasUseOptionalVariables() {
29397 return ((bitField6_ & 0x00000020) != 0);
29398 }
29412 @java.lang.Override
29413 public boolean getUseOptionalVariables() {
29414 return useOptionalVariables_;
29415 }
29430 public Builder setUseOptionalVariables(boolean value) {
29431
29432 useOptionalVariables_ = value;
29433 bitField6_ |= 0x00000020;
29434 onChanged();
29435 return this;
29436 }
29451 bitField6_ = (bitField6_ & ~0x00000020);
29452 useOptionalVariables_ = false;
29453 onChanged();
29454 return this;
29455 }
29456
29457 private boolean useExactLpReason_ = true;
29469 @java.lang.Override
29470 public boolean hasUseExactLpReason() {
29471 return ((bitField6_ & 0x00000040) != 0);
29472 }
29484 @java.lang.Override
29485 public boolean getUseExactLpReason() {
29486 return useExactLpReason_;
29487 }
29500 public Builder setUseExactLpReason(boolean value) {
29501
29502 useExactLpReason_ = value;
29503 bitField6_ |= 0x00000040;
29504 onChanged();
29505 return this;
29506 }
29519 bitField6_ = (bitField6_ & ~0x00000040);
29520 useExactLpReason_ = true;
29521 onChanged();
29522 return this;
29523 }
29524
29525 private boolean useBranchingInLp_ ;
29536 @java.lang.Override
29537 public boolean hasUseBranchingInLp() {
29538 return ((bitField6_ & 0x00000080) != 0);
29539 }
29550 @java.lang.Override
29551 public boolean getUseBranchingInLp() {
29552 return useBranchingInLp_;
29553 }
29565 public Builder setUseBranchingInLp(boolean value) {
29566
29567 useBranchingInLp_ = value;
29568 bitField6_ |= 0x00000080;
29569 onChanged();
29570 return this;
29571 }
29583 bitField6_ = (bitField6_ & ~0x00000080);
29584 useBranchingInLp_ = false;
29585 onChanged();
29586 return this;
29587 }
29588
29589 private boolean useCombinedNoOverlap_ ;
29600 @java.lang.Override
29601 public boolean hasUseCombinedNoOverlap() {
29602 return ((bitField6_ & 0x00000100) != 0);
29603 }
29614 @java.lang.Override
29615 public boolean getUseCombinedNoOverlap() {
29616 return useCombinedNoOverlap_;
29617 }
29629 public Builder setUseCombinedNoOverlap(boolean value) {
29630
29631 useCombinedNoOverlap_ = value;
29632 bitField6_ |= 0x00000100;
29633 onChanged();
29634 return this;
29635 }
29647 bitField6_ = (bitField6_ & ~0x00000100);
29648 useCombinedNoOverlap_ = false;
29649 onChanged();
29650 return this;
29651 }
29652
29653 private boolean catchSigintSignal_ = true;
29664 @java.lang.Override
29665 public boolean hasCatchSigintSignal() {
29666 return ((bitField6_ & 0x00000200) != 0);
29667 }
29678 @java.lang.Override
29679 public boolean getCatchSigintSignal() {
29680 return catchSigintSignal_;
29681 }
29693 public Builder setCatchSigintSignal(boolean value) {
29694
29695 catchSigintSignal_ = value;
29696 bitField6_ |= 0x00000200;
29697 onChanged();
29698 return this;
29699 }
29711 bitField6_ = (bitField6_ & ~0x00000200);
29712 catchSigintSignal_ = true;
29713 onChanged();
29714 return this;
29715 }
29716
29717 private boolean useImpliedBounds_ = true;
29728 @java.lang.Override
29729 public boolean hasUseImpliedBounds() {
29730 return ((bitField6_ & 0x00000400) != 0);
29731 }
29742 @java.lang.Override
29743 public boolean getUseImpliedBounds() {
29744 return useImpliedBounds_;
29745 }
29757 public Builder setUseImpliedBounds(boolean value) {
29758
29759 useImpliedBounds_ = value;
29760 bitField6_ |= 0x00000400;
29761 onChanged();
29762 return this;
29763 }
29775 bitField6_ = (bitField6_ & ~0x00000400);
29776 useImpliedBounds_ = true;
29777 onChanged();
29778 return this;
29779 }
29780
29781 private boolean polishLpSolution_ ;
29793 @java.lang.Override
29794 public boolean hasPolishLpSolution() {
29795 return ((bitField6_ & 0x00000800) != 0);
29796 }
29808 @java.lang.Override
29809 public boolean getPolishLpSolution() {
29810 return polishLpSolution_;
29811 }
29824 public Builder setPolishLpSolution(boolean value) {
29825
29826 polishLpSolution_ = value;
29827 bitField6_ |= 0x00000800;
29828 onChanged();
29829 return this;
29830 }
29843 bitField6_ = (bitField6_ & ~0x00000800);
29844 polishLpSolution_ = false;
29845 onChanged();
29846 return this;
29847 }
29848
29849 private boolean convertIntervals_ = true;
29860 @java.lang.Override
29861 public boolean hasConvertIntervals() {
29862 return ((bitField6_ & 0x00001000) != 0);
29863 }
29874 @java.lang.Override
29875 public boolean getConvertIntervals() {
29876 return convertIntervals_;
29877 }
29889 public Builder setConvertIntervals(boolean value) {
29890
29891 convertIntervals_ = value;
29892 bitField6_ |= 0x00001000;
29893 onChanged();
29894 return this;
29895 }
29907 bitField6_ = (bitField6_ & ~0x00001000);
29908 convertIntervals_ = true;
29909 onChanged();
29910 return this;
29911 }
29912
29913 private int symmetryLevel_ = 2;
29925 @java.lang.Override
29926 public boolean hasSymmetryLevel() {
29927 return ((bitField6_ & 0x00002000) != 0);
29928 }
29940 @java.lang.Override
29941 public int getSymmetryLevel() {
29942 return symmetryLevel_;
29943 }
29956 public Builder setSymmetryLevel(int value) {
29957
29958 symmetryLevel_ = value;
29959 bitField6_ |= 0x00002000;
29960 onChanged();
29961 return this;
29962 }
29975 bitField6_ = (bitField6_ & ~0x00002000);
29976 symmetryLevel_ = 2;
29977 onChanged();
29978 return this;
29979 }
29980
29981 private boolean newLinearPropagation_ ;
29990 @java.lang.Override
29991 public boolean hasNewLinearPropagation() {
29992 return ((bitField6_ & 0x00004000) != 0);
29993 }
30002 @java.lang.Override
30003 public boolean getNewLinearPropagation() {
30004 return newLinearPropagation_;
30005 }
30015 public Builder setNewLinearPropagation(boolean value) {
30016
30017 newLinearPropagation_ = value;
30018 bitField6_ |= 0x00004000;
30019 onChanged();
30020 return this;
30021 }
30031 bitField6_ = (bitField6_ & ~0x00004000);
30032 newLinearPropagation_ = false;
30033 onChanged();
30034 return this;
30035 }
30036
30037 private int linearSplitSize_ = 100;
30048 @java.lang.Override
30049 public boolean hasLinearSplitSize() {
30050 return ((bitField6_ & 0x00008000) != 0);
30051 }
30062 @java.lang.Override
30063 public int getLinearSplitSize() {
30064 return linearSplitSize_;
30065 }
30077 public Builder setLinearSplitSize(int value) {
30078
30079 linearSplitSize_ = value;
30080 bitField6_ |= 0x00008000;
30081 onChanged();
30082 return this;
30083 }
30095 bitField6_ = (bitField6_ & ~0x00008000);
30096 linearSplitSize_ = 100;
30097 onChanged();
30098 return this;
30099 }
30100
30101 private double mipMaxBound_ = 10000000D;
30112 @java.lang.Override
30113 public boolean hasMipMaxBound() {
30114 return ((bitField6_ & 0x00010000) != 0);
30115 }
30126 @java.lang.Override
30127 public double getMipMaxBound() {
30128 return mipMaxBound_;
30129 }
30141 public Builder setMipMaxBound(double value) {
30142
30143 mipMaxBound_ = value;
30144 bitField6_ |= 0x00010000;
30145 onChanged();
30146 return this;
30147 }
30159 bitField6_ = (bitField6_ & ~0x00010000);
30160 mipMaxBound_ = 10000000D;
30161 onChanged();
30162 return this;
30163 }
30164
30165 private double mipVarScaling_ = 1D;
30176 @java.lang.Override
30177 public boolean hasMipVarScaling() {
30178 return ((bitField6_ & 0x00020000) != 0);
30179 }
30190 @java.lang.Override
30191 public double getMipVarScaling() {
30192 return mipVarScaling_;
30193 }
30205 public Builder setMipVarScaling(double value) {
30206
30207 mipVarScaling_ = value;
30208 bitField6_ |= 0x00020000;
30209 onChanged();
30210 return this;
30211 }
30223 bitField6_ = (bitField6_ & ~0x00020000);
30224 mipVarScaling_ = 1D;
30225 onChanged();
30226 return this;
30227 }
30228
30229 private boolean mipScaleLargeDomain_ ;
30240 @java.lang.Override
30241 public boolean hasMipScaleLargeDomain() {
30242 return ((bitField6_ & 0x00040000) != 0);
30243 }
30254 @java.lang.Override
30255 public boolean getMipScaleLargeDomain() {
30256 return mipScaleLargeDomain_;
30257 }
30269 public Builder setMipScaleLargeDomain(boolean value) {
30270
30271 mipScaleLargeDomain_ = value;
30272 bitField6_ |= 0x00040000;
30273 onChanged();
30274 return this;
30275 }
30287 bitField6_ = (bitField6_ & ~0x00040000);
30288 mipScaleLargeDomain_ = false;
30289 onChanged();
30290 return this;
30291 }
30292
30293 private boolean mipAutomaticallyScaleVariables_ = true;
30306 @java.lang.Override
30308 return ((bitField6_ & 0x00080000) != 0);
30309 }
30322 @java.lang.Override
30324 return mipAutomaticallyScaleVariables_;
30325 }
30340
30341 mipAutomaticallyScaleVariables_ = value;
30342 bitField6_ |= 0x00080000;
30343 onChanged();
30344 return this;
30345 }
30359 bitField6_ = (bitField6_ & ~0x00080000);
30360 mipAutomaticallyScaleVariables_ = true;
30361 onChanged();
30362 return this;
30363 }
30364
30365 private boolean onlySolveIp_ ;
30385 @java.lang.Override
30386 public boolean hasOnlySolveIp() {
30387 return ((bitField6_ & 0x00100000) != 0);
30388 }
30408 @java.lang.Override
30409 public boolean getOnlySolveIp() {
30410 return onlySolveIp_;
30411 }
30432 public Builder setOnlySolveIp(boolean value) {
30433
30434 onlySolveIp_ = value;
30435 bitField6_ |= 0x00100000;
30436 onChanged();
30437 return this;
30438 }
30459 bitField6_ = (bitField6_ & ~0x00100000);
30460 onlySolveIp_ = false;
30461 onChanged();
30462 return this;
30463 }
30464
30465 private double mipWantedPrecision_ = 1e-06D;
30490 @java.lang.Override
30491 public boolean hasMipWantedPrecision() {
30492 return ((bitField6_ & 0x00200000) != 0);
30493 }
30518 @java.lang.Override
30519 public double getMipWantedPrecision() {
30520 return mipWantedPrecision_;
30521 }
30547 public Builder setMipWantedPrecision(double value) {
30548
30549 mipWantedPrecision_ = value;
30550 bitField6_ |= 0x00200000;
30551 onChanged();
30552 return this;
30553 }
30579 bitField6_ = (bitField6_ & ~0x00200000);
30580 mipWantedPrecision_ = 1e-06D;
30581 onChanged();
30582 return this;
30583 }
30584
30585 private int mipMaxActivityExponent_ = 53;
30601 @java.lang.Override
30602 public boolean hasMipMaxActivityExponent() {
30603 return ((bitField6_ & 0x00400000) != 0);
30604 }
30620 @java.lang.Override
30622 return mipMaxActivityExponent_;
30623 }
30641
30642 mipMaxActivityExponent_ = value;
30643 bitField6_ |= 0x00400000;
30644 onChanged();
30645 return this;
30646 }
30663 bitField6_ = (bitField6_ & ~0x00400000);
30664 mipMaxActivityExponent_ = 53;
30665 onChanged();
30666 return this;
30667 }
30668
30669 private double mipCheckPrecision_ = 0.0001D;
30680 @java.lang.Override
30681 public boolean hasMipCheckPrecision() {
30682 return ((bitField6_ & 0x00800000) != 0);
30683 }
30694 @java.lang.Override
30695 public double getMipCheckPrecision() {
30696 return mipCheckPrecision_;
30697 }
30709 public Builder setMipCheckPrecision(double value) {
30710
30711 mipCheckPrecision_ = value;
30712 bitField6_ |= 0x00800000;
30713 onChanged();
30714 return this;
30715 }
30727 bitField6_ = (bitField6_ & ~0x00800000);
30728 mipCheckPrecision_ = 0.0001D;
30729 onChanged();
30730 return this;
30731 }
30732
30733 private boolean mipComputeTrueObjectiveBound_ = true;
30746 @java.lang.Override
30748 return ((bitField6_ & 0x01000000) != 0);
30749 }
30762 @java.lang.Override
30764 return mipComputeTrueObjectiveBound_;
30765 }
30780
30781 mipComputeTrueObjectiveBound_ = value;
30782 bitField6_ |= 0x01000000;
30783 onChanged();
30784 return this;
30785 }
30799 bitField6_ = (bitField6_ & ~0x01000000);
30800 mipComputeTrueObjectiveBound_ = true;
30801 onChanged();
30802 return this;
30803 }
30804
30805 private double mipMaxValidMagnitude_ = 1e+30D;
30818 @java.lang.Override
30819 public boolean hasMipMaxValidMagnitude() {
30820 return ((bitField6_ & 0x02000000) != 0);
30821 }
30834 @java.lang.Override
30835 public double getMipMaxValidMagnitude() {
30836 return mipMaxValidMagnitude_;
30837 }
30851 public Builder setMipMaxValidMagnitude(double value) {
30852
30853 mipMaxValidMagnitude_ = value;
30854 bitField6_ |= 0x02000000;
30855 onChanged();
30856 return this;
30857 }
30871 bitField6_ = (bitField6_ & ~0x02000000);
30872 mipMaxValidMagnitude_ = 1e+30D;
30873 onChanged();
30874 return this;
30875 }
30876
30877 private double mipDropTolerance_ = 1e-16D;
30887 @java.lang.Override
30888 public boolean hasMipDropTolerance() {
30889 return ((bitField6_ & 0x04000000) != 0);
30890 }
30900 @java.lang.Override
30901 public double getMipDropTolerance() {
30902 return mipDropTolerance_;
30903 }
30914 public Builder setMipDropTolerance(double value) {
30915
30916 mipDropTolerance_ = value;
30917 bitField6_ |= 0x04000000;
30918 onChanged();
30919 return this;
30920 }
30931 bitField6_ = (bitField6_ & ~0x04000000);
30932 mipDropTolerance_ = 1e-16D;
30933 onChanged();
30934 return this;
30935 }
30936 @java.lang.Override
30938 final com.google.protobuf.UnknownFieldSet unknownFields) {
30939 return super.setUnknownFields(unknownFields);
30940 }
30941
30942 @java.lang.Override
30944 final com.google.protobuf.UnknownFieldSet unknownFields) {
30945 return super.mergeUnknownFields(unknownFields);
30946 }
30947
30948
30949 // @@protoc_insertion_point(builder_scope:operations_research.sat.SatParameters)
30950 }
30951
30952 // @@protoc_insertion_point(class_scope:operations_research.sat.SatParameters)
30953 private static final com.google.ortools.sat.SatParameters DEFAULT_INSTANCE;
30954 static {
30955 DEFAULT_INSTANCE = new com.google.ortools.sat.SatParameters();
30956 }
30957
30959 return DEFAULT_INSTANCE;
30960 }
30961
30962 @java.lang.Deprecated public static final com.google.protobuf.Parser<SatParameters>
30963 PARSER = new com.google.protobuf.AbstractParser<SatParameters>() {
30964 @java.lang.Override
30965 public SatParameters parsePartialFrom(
30966 com.google.protobuf.CodedInputStream input,
30967 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
30968 throws com.google.protobuf.InvalidProtocolBufferException {
30969 Builder builder = newBuilder();
30970 try {
30971 builder.mergeFrom(input, extensionRegistry);
30972 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
30973 throw e.setUnfinishedMessage(builder.buildPartial());
30974 } catch (com.google.protobuf.UninitializedMessageException e) {
30975 throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
30976 } catch (java.io.IOException e) {
30977 throw new com.google.protobuf.InvalidProtocolBufferException(e)
30978 .setUnfinishedMessage(builder.buildPartial());
30979 }
30980 return builder.buildPartial();
30981 }
30982 };
30983
30984 public static com.google.protobuf.Parser<SatParameters> parser() {
30985 return PARSER;
30986 }
30987
30988 @java.lang.Override
30989 public com.google.protobuf.Parser<SatParameters> getParserForType() {
30990 return PARSER;
30991 }
30992
30993 @java.lang.Override
30995 return DEFAULT_INSTANCE;
30996 }
30997
30998}
30999
Builder setUsePrecedencesInDisjunctiveConstraint(boolean value)
Builder addIgnoreSubsolvers(java.lang.String value)
Builder setUsePairwiseReasoningInNoOverlap2D(boolean value)
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
Builder addRestartAlgorithms(com.google.ortools.sat.SatParameters.RestartAlgorithm value)
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
com.google.ortools.sat.SatParameters getDefaultInstanceForType()
com.google.protobuf.ProtocolStringList getIgnoreSubsolversList()
java.util.List< com.google.ortools.sat.SatParameters > getSubsolverParamsList()
Builder setLogPrefix(java.lang.String value)
Builder setClauseCleanupOrdering(com.google.ortools.sat.SatParameters.ClauseOrdering value)
Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
Builder addAllSubsolvers(java.lang.Iterable< java.lang.String > values)
final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
Builder setExtraSubsolvers(int index, java.lang.String value)
Builder setSubsolverParams(int index, com.google.ortools.sat.SatParameters.Builder builderForValue)
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
Builder setUseTimetableEdgeFindingInCumulative(boolean value)
com.google.ortools.sat.SatParametersOrBuilder getSubsolverParamsOrBuilder(int index)
Builder addIgnoreSubsolversBytes(com.google.protobuf.ByteString value)
Builder addSubsolverParams(com.google.ortools.sat.SatParameters.Builder builderForValue)
com.google.ortools.sat.SatParameters.SharedTreeSplitStrategy getSharedTreeSplitStrategy()
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
Builder addExtraSubsolversBytes(com.google.protobuf.ByteString value)
com.google.ortools.sat.SatParameters.Builder addSubsolverParamsBuilder()
Builder addSubsolverParams(int index, com.google.ortools.sat.SatParameters value)
Builder setIgnoreSubsolvers(int index, java.lang.String value)
com.google.ortools.sat.SatParameters.FPRoundingMethod getFpRounding()
Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
com.google.ortools.sat.SatParameters.Builder addSubsolverParamsBuilder(int index)
com.google.protobuf.ByteString getSubsolversBytes(int index)
Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)
Builder mergeFrom(com.google.protobuf.Message other)
Builder setClauseCleanupProtection(com.google.ortools.sat.SatParameters.ClauseProtection value)
Builder setSubsumptionDuringConflictAnalysis(boolean value)
Builder addSubsolverParams(int index, com.google.ortools.sat.SatParameters.Builder builderForValue)
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
Builder setSharedTreeWorkerObjectiveSplitProbability(double value)
Builder setRestartAlgorithms(int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value)
Builder setUseDisjunctiveConstraintInCumulative(boolean value)
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Builder setEncodeComplexLinearConstraintWithInteger(boolean value)
Builder setBinaryMinimizationAlgorithm(com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value)
Builder setUseEnergeticReasoningInNoOverlap2D(boolean value)
Builder setKeepAllFeasibleSolutionsInPresolve(boolean value)
Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
Builder setDefaultRestartAlgorithms(java.lang.String value)
Builder addExtraSubsolvers(java.lang.String value)
Builder setPresolveProbingDeterministicTimeLimit(double value)
Builder setLogPrefixBytes(com.google.protobuf.ByteString value)
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
Builder addSubsolversBytes(com.google.protobuf.ByteString value)
Builder addSubsolvers(java.lang.String value)
com.google.ortools.sat.SatParameters build()
java.util.List< com.google.ortools.sat.SatParameters.Builder > getSubsolverParamsBuilderList()
com.google.protobuf.ByteString getIgnoreSubsolversBytes(int index)
Builder setMaxSatStratification(com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value)
Builder setFpRounding(com.google.ortools.sat.SatParameters.FPRoundingMethod value)
Builder setSharedTreeSplitStrategy(com.google.ortools.sat.SatParameters.SharedTreeSplitStrategy value)
Builder addAllRestartAlgorithms(java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm > values)
Builder addSubsolverParams(com.google.ortools.sat.SatParameters value)
Builder setPreferredVariableOrder(com.google.ortools.sat.SatParameters.VariableOrder value)
Builder setFeasibilityJumpProtectLinearFeasibility(boolean value)
Builder setInitialPolarity(com.google.ortools.sat.SatParameters.Polarity value)
com.google.protobuf.ByteString getLogPrefixBytes()
Builder setFeasibilityJumpVarRandomizationProbability(double value)
com.google.protobuf.ProtocolStringList getSubsolversList()
Builder setAlsoBumpVariablesInConflictReasons(boolean value)
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
Builder setNameBytes(com.google.protobuf.ByteString value)
Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
com.google.ortools.sat.SatParameters getSubsolverParams(int index)
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
Builder setDefaultRestartAlgorithmsBytes(com.google.protobuf.ByteString value)
Builder setMaxSatAssumptionOrder(com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value)
com.google.protobuf.ByteString getNameBytes()
Builder setUseStrongPropagationInDisjunctive(boolean value)
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
Builder setMinimizeReductionDuringPbResolution(boolean value)
Builder addAllSubsolverParams(java.lang.Iterable<? extends com.google.ortools.sat.SatParameters > values)
Builder setFillAdditionalSolutionsInResponse(boolean value)
Builder addAllExtraSubsolvers(java.lang.Iterable< java.lang.String > values)
com.google.ortools.sat.SatParameters buildPartial()
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
Builder setAutoDetectGreaterThanAtLeastOneOf(boolean value)
com.google.protobuf.ProtocolStringList getExtraSubsolversList()
Builder mergeFrom(com.google.ortools.sat.SatParameters other)
java.util.List<? extends com.google.ortools.sat.SatParametersOrBuilder > getSubsolverParamsOrBuilderList()
Builder setFeasibilityJumpVarPerburbationRangeRatio(double value)
com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
com.google.protobuf.ByteString getExtraSubsolversBytes(int index)
Builder addAllIgnoreSubsolvers(java.lang.Iterable< java.lang.String > values)
Builder setSearchBranching(com.google.ortools.sat.SatParameters.SearchBranching value)
Builder setSubsolverParams(int index, com.google.ortools.sat.SatParameters value)
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
Builder setPresolveExtractIntegerEnforcement(boolean value)
Builder setMaxSizeToCreatePrecedenceLiteralsInDisjunctive(int value)
Builder setSubsolvers(int index, java.lang.String value)
com.google.ortools.sat.SatParameters.Builder getSubsolverParamsBuilder(int index)
Builder setMinimizationAlgorithm(com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value)
com.google.ortools.sat.SatParameters getDefaultInstanceForType()
static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER
static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER
static final int ALSO_BUMP_VARIABLES_IN_CONFLICT_REASONS_FIELD_NUMBER
com.google.protobuf.ByteString getIgnoreSubsolversBytes(int index)
static final int FILL_ADDITIONAL_SOLUTIONS_IN_RESPONSE_FIELD_NUMBER
static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER
static final int USE_DUAL_SCHEDULING_HEURISTICS_FIELD_NUMBER
static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER
com.google.protobuf.ProtocolStringList getSubsolversList()
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
static final int MERGE_NO_OVERLAP_WORK_LIMIT_FIELD_NUMBER
static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER
static final int AUTO_DETECT_GREATER_THAN_AT_LEAST_ONE_OF_FIELD_NUMBER
static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER
static final int USE_HARD_PRECEDENCES_IN_CUMULATIVE_FIELD_NUMBER
static final int PRESOLVE_INCLUSION_WORK_LIMIT_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
com.google.ortools.sat.SatParameters.FPRoundingMethod getFpRounding()
static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER
com.google.ortools.sat.SatParameters getSubsolverParams(int index)
static final int FIX_VARIABLES_TO_THEIR_HINTED_VALUE_FIELD_NUMBER
static final int SHARED_TREE_SPLIT_STRATEGY_FIELD_NUMBER
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
static final int MIP_MAX_VALID_MAGNITUDE_FIELD_NUMBER
static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER
static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER
static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER
static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER
static final int DEBUG_MAX_NUM_PRESOLVE_OPERATIONS_FIELD_NUMBER
java.util.List<? extends com.google.ortools.sat.SatParametersOrBuilder > getSubsolverParamsOrBuilderList()
static final int EXPAND_ALLDIFF_CONSTRAINTS_FIELD_NUMBER
static Builder newBuilder(com.google.ortools.sat.SatParameters prototype)
static final int USE_TIMETABLE_EDGE_FINDING_IN_CUMULATIVE_FIELD_NUMBER
static final int USE_ENERGETIC_REASONING_IN_NO_OVERLAP_2D_FIELD_NUMBER
static final int EXPAND_RESERVOIR_CONSTRAINTS_FIELD_NUMBER
com.google.protobuf.ByteString getExtraSubsolversBytes(int index)
static final int PERMUTE_PRESOLVE_CONSTRAINT_ORDER_FIELD_NUMBER
static final int KEEP_ALL_FEASIBLE_SOLUTIONS_IN_PRESOLVE_FIELD_NUMBER
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
static final int MAX_CUT_ROUNDS_AT_LEVEL_ZERO_FIELD_NUMBER
static final int MIP_AUTOMATICALLY_SCALE_VARIABLES_FIELD_NUMBER
static final int PRESOLVE_SUBSTITUTION_LEVEL_FIELD_NUMBER
com.google.ortools.sat.SatParametersOrBuilder getSubsolverParamsOrBuilder(int index)
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
static final int MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER
com.google.protobuf.ByteString getLogPrefixBytes()
static final int USE_OBJECTIVE_LB_SEARCH_FIELD_NUMBER
static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER
com.google.protobuf.Parser< SatParameters > getParserForType()
static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
com.google.ortools.sat.SatParameters.SharedTreeSplitStrategy getSharedTreeSplitStrategy()
static final int USE_OBJECTIVE_SHAVING_SEARCH_FIELD_NUMBER
static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER
static final int POLARITY_REPHASE_INCREMENT_FIELD_NUMBER
static com.google.protobuf.Parser< SatParameters > parser()
static final int PRESOLVE_EXTRACT_INTEGER_ENFORCEMENT_FIELD_NUMBER
static final int MERGE_AT_MOST_ONE_WORK_LIMIT_FIELD_NUMBER
static final int MAX_CONSECUTIVE_INACTIVE_COUNT_FIELD_NUMBER
static final int SHARED_TREE_WORKER_OBJECTIVE_SPLIT_PROBABILITY_FIELD_NUMBER
static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER
static final int USE_PAIRWISE_REASONING_IN_NO_OVERLAP_2D_FIELD_NUMBER
static final int OPTIMIZE_WITH_LB_TREE_SEARCH_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data)
com.google.protobuf.ByteString getNameBytes()
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
static final int USE_SHAVING_IN_PROBING_SEARCH_FIELD_NUMBER
static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER
static final int LOG_FREQUENCY_IN_SECONDS_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
java.util.List< com.google.ortools.sat.SatParameters > getSubsolverParamsList()
static final int DEBUG_POSTSOLVE_WITH_FULL_SOLVER_FIELD_NUMBER
static final int MINIMIZE_WITH_PROPAGATION_NUM_DECISIONS_FIELD_NUMBER
static final int DISABLE_CONSTRAINT_EXPANSION_FIELD_NUMBER
static final int FEASIBILITY_JUMP_ENABLE_RESTARTS_FIELD_NUMBER
static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER
static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER
static final int NUM_CONFLICTS_BEFORE_STRATEGY_CHANGES_FIELD_NUMBER
static final int EXPLOIT_ALL_PRECEDENCES_FIELD_NUMBER
static final int VIOLATION_LS_PERTURBATION_PERIOD_FIELD_NUMBER
static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER
static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER
void writeTo(com.google.protobuf.CodedOutputStream output)
java.lang.String getIgnoreSubsolvers(int index)
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
static final int FILL_TIGHTENED_DOMAINS_IN_RESPONSE_FIELD_NUMBER
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
static final int PERMUTE_VARIABLE_RANDOMLY_FIELD_NUMBER
static final int FIND_BIG_LINEAR_OVERLAP_FIELD_NUMBER
static final int STOP_AFTER_ROOT_PROPAGATION_FIELD_NUMBER
static final int USE_PRECEDENCES_IN_DISJUNCTIVE_CONSTRAINT_FIELD_NUMBER
static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER
java.lang.Object newInstance(UnusedPrivateParameter unused)
static com.google.ortools.sat.SatParameters getDefaultInstance()
static final int SHARED_TREE_MAX_NODES_PER_WORKER_FIELD_NUMBER
java.lang.String getSubsolvers(int index)
static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER
static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER
static final int MAX_SIZE_TO_CREATE_PRECEDENCE_LITERALS_IN_DISJUNCTIVE_FIELD_NUMBER
com.google.protobuf.ByteString getSubsolversBytes(int index)
static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER
static final int SHAVING_SEARCH_DETERMINISTIC_TIME_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static final int FEASIBILITY_JUMP_PROTECT_LINEAR_FEASIBILITY_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input)
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static final int MODEL_REDUCTION_LOG_FREQUENCY_IN_SECONDS_FIELD_NUMBER
boolean equals(final java.lang.Object obj)
static final int FEASIBILITY_JUMP_VAR_RANDOMIZATION_PROBABILITY_FIELD_NUMBER
static final int MAX_DOMAIN_SIZE_WHEN_ENCODING_EQ_NEQ_CONSTRAINTS_FIELD_NUMBER
static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER
static final int PROBING_DETERMINISTIC_TIME_LIMIT_FIELD_NUMBER
static final int DEBUG_CRASH_ON_BAD_HINT_FIELD_NUMBER
static final int PROPAGATION_LOOP_DETECTION_FACTOR_FIELD_NUMBER
static final int PRESOLVE_PROBING_DETERMINISTIC_TIME_LIMIT_FIELD_NUMBER
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
static final int SHARED_TREE_NUM_WORKERS_FIELD_NUMBER
static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER
static final int MIP_COMPUTE_TRUE_OBJECTIVE_BOUND_FIELD_NUMBER
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER
static final int CUT_MAX_ACTIVE_COUNT_VALUE_FIELD_NUMBER
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
static final int MIN_ORTHOGONALITY_FOR_LP_CONSTRAINTS_FIELD_NUMBER
static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER
com.google.protobuf.ProtocolStringList getExtraSubsolversList()
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
static final int NEW_CONSTRAINTS_BATCH_SIZE_FIELD_NUMBER
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
static final int USE_STRONG_PROPAGATION_IN_DISJUNCTIVE_FIELD_NUMBER
static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER
static final int SUBSUMPTION_DURING_CONFLICT_ANALYSIS_FIELD_NUMBER
static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data)
static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER
static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER
static final int MINIMIZE_REDUCTION_DURING_PB_RESOLUTION_FIELD_NUMBER
static final int USE_DISJUNCTIVE_CONSTRAINT_IN_CUMULATIVE_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static final int FEASIBILITY_JUMP_VAR_PERBURBATION_RANGE_RATIO_FIELD_NUMBER
static final int LOG_SUBSOLVER_STATISTICS_FIELD_NUMBER
static final int USE_TIMETABLING_IN_NO_OVERLAP_2D_FIELD_NUMBER
static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER
Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER
static final int EXPLOIT_RELAXATION_SOLUTION_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
com.google.protobuf.ProtocolStringList getIgnoreSubsolversList()
java.lang.String getExtraSubsolvers(int index)
static final int TABLE_COMPRESSION_LEVEL_FIELD_NUMBER
static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER
static final int MINIMIZE_WITH_PROPAGATION_RESTART_PERIOD_FIELD_NUMBER
static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER
static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER
static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER
static final int ENCODE_COMPLEX_LINEAR_CONSTRAINT_WITH_INTEGER_FIELD_NUMBER
static final int FEASIBILITY_JUMP_MAX_NUM_VALUES_SCANNED_FIELD_NUMBER
static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER
static final int USE_OVERLOAD_CHECKER_IN_CUMULATIVE_FIELD_NUMBER
static final com.google.protobuf.Parser< SatParameters > PARSER
static BinaryMinizationAlgorithm valueOf(int value)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static BinaryMinizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static com.google.protobuf.Internal.EnumLiteMap< BinaryMinizationAlgorithm > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static BinaryMinizationAlgorithm forNumber(int value)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static ClauseOrdering valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Internal.EnumLiteMap< ClauseOrdering > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static ClauseProtection valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Internal.EnumLiteMap< ClauseProtection > internalGetValueMap()
static ConflictMinimizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< ConflictMinimizationAlgorithm > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static ConflictMinimizationAlgorithm forNumber(int value)
static ConflictMinimizationAlgorithm valueOf(int value)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static FPRoundingMethod valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Internal.EnumLiteMap< FPRoundingMethod > internalGetValueMap()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< MaxSatAssumptionOrder > internalGetValueMap()
static MaxSatAssumptionOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static MaxSatStratificationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Internal.EnumLiteMap< MaxSatStratificationAlgorithm > internalGetValueMap()
static MaxSatStratificationAlgorithm forNumber(int value)
static MaxSatStratificationAlgorithm valueOf(int value)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< Polarity > internalGetValueMap()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static Polarity valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static RestartAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Internal.EnumLiteMap< RestartAlgorithm > internalGetValueMap()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static SearchBranching valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< SearchBranching > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static SharedTreeSplitStrategy valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static SharedTreeSplitStrategy forNumber(int value)
static com.google.protobuf.Internal.EnumLiteMap< SharedTreeSplitStrategy > internalGetValueMap()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static VariableOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static com.google.protobuf.Internal.EnumLiteMap< VariableOrder > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()